云南农业大学2023年C语言程序设计专升本题库

本试卷为云南农业大学2023年C语言程序设计专升本题库,题目包括:填空题。

本卷包括如下题型:

一、填空题

C语言程序设计专升本题库

一、填空题 (共40题,每题2.5分,共计100分)

1、下列程序段是从键盘输入的字符中统计数字字符的个数,用换行符结束循环。 int n=0, ch;
ch=getchar( );
while( ________ )
{
if ( ________ ) n++;
c=getchar( );
}
2、有以下程序
main()
{
char c;
while((c=getchar())!='?') putchar( --c );
}
程序运行时,如果从键盘输入:ydg?n?<回车>,则输出结果为 ________ 。
3、定义4行3列的整型二维数组a的语句是________。
4、c程序中的变量按其定义位置及作用域可分为________两种。
5、c语言的标识符只能由大小写字母,数字和下划线三种字符组成,而且第一个字符必须为________。
6、有以下程序
#include<stdio.h>
main() {
int i,n[]={0,0,0,0,0};
for (i=1;i<=4;i++)
{
n[i]=n[i-1]*3+1;
printf("%d ",n[i]);
}
}
程序运行后的输出结果是________。
7、以下程序运行后的输出结果是 ________ 。
main()
{
int a=1,b=3,c=5;
if (c=a+b) printf("yes\n");
else printf("no\n");
}
8、以下程序的功能是将字符串s中的数字字符放入d数组中,最后输出d中的字符串。例如,输入字符串:abc123edf456gh,执行程序后输出:123456。请填空。
#include <stdio.h>
#include <ctype.h>
main()
{
char s[80], d[80];
int i,j;
gets(s);
for(i=j=0;s[i]!='\0';i++) if( ________ )
{
d[j]=s[i];
j++;
}
d[j]='\0';
puts(d);
}
9、以下程序的输出结果是 ________ 。
main()
{
int a=0 a+=(a=8);
printf("%d\n",a);
}
10、以下程序的输出结果是______ 。
#include <stdio.h>
main()
{
int i;
for(i=a;j<f;i++,i++) printf("%c",i-‘a’+’a’);
printf("\n");
}
11、下列程序运行结果是 ________ 。
#include <stdio.h>
#include <string.h>
struct a ( int a; char b[10]; double c; );
void f(struct a *t);
main()
{
struct a a={1001, "zhangda",1098.0};
f(&a);
printf("%d,%s,%6.1f\n",a.a,a.b,a.c);
}
void f(struct a *t)
{
strcpy(t->b,"changrong");
}
12、c语言中对文件读写之前必须先打开文件,文件的打开是通过调用________函数来实现。
13、下面程序段的运行结果是________.
int i=1,s=3;
do
{
s+=i++;
if(s%7==0)continue;
else ++i;
}
while(s<15);
printf("%d",i);
14、若有语句double x=17; int y; ,当执行y=(int)(x/5)%2;之后y的值是 ________。
15、表达式(int)((double)(5/2)+2.5)的值是 ________ 。
16、下列程序段的运行结果是_____。
char s1[20]="abcdef", s2[5]="abc";
strcpy(s1,s2);
printf("%c", s1[5]);
17、在定义函数时函数名后面括号中的变量名称为________。
18、读取文件的函数名是【1】。
19、下列程序段的运行结果是_____。intb=20,*q;
q=&b; printf("%d",*q);
20、已知"float a=3.5;int b=12;",则算术表达式"(int)(a+b/5)"的值是________。
21、以下程序的输出结果是________。
main()
{
int x;
printf("%d\n",(x=2*4,x+5));
}
22、执行下列程序段后,输出的a的值是________。
main()
{
int a = 1;
switch(a)
{
case 0: a--;
break;
case 1: a++;
break;
case 2: a=a+5;
break
}
printf("%d",a);
}
23、若有"int a[3][2]={{1,2},{3},{4,5}};",则a[1][1]的值是________。
24、下列程序段的运行结果是________。
int a=2 ,*p ;
p=&a;
printf("%d",*p);
25、下面程序段中循环体的执行次数是________。
a=10;
b=0;
do
{
b+=2;
a-=2+b;
}
while(a>=0);
26、下面程序段的运行结果是________。
i=1;
a=0;
s=1;
do
{
a=a+s*i;
s=-s;
i++;
}
while(i<=10);
printf("a=%d",a);
27、在c语言中,若确实不要求返回函数值,则应将函数定义为( )类型。
28、下列程序段的运行结果是________。
#define add(x , y) x+y
main()
{
int a , b , s;
A=5, b=6;
S=add(a,b);
printf("s=%d\n" , s);
}
29、写出下列程序的运行结果。
main()
{
int n;
for(n=3; n<=10; n++)
{
if(n%6==0) break;
printf("%d",n);
}
}
30、"空"指针值用______表示
31、已知"float a=3.5;
int b=12;
",则算术表达式"a+b/5"的值是_____________。
32、若定义了int a[10],将数组元素中最后一个元素"赋值为10"语句是________。
33、定义二维数组int a[3][5];
,那么该数组中的第6个元素的访问形式为 ______。27. 在程序运行过程中,其值能被改变的量称为________。
34、对于文件末尾检测函数feof,如果文件指针已到文件末尾,则函数返回值是________。
35、下面程序的运行结果是________。
main()
{
int a[2][3]={{1,2,3},{4,5,6}}, int b[3][2],i,j;
printf("array a:\n");
for(i=0;i<=1;i++)
{
for(j=0;j<=2;j++)
{
printf("%5d",a[i][j]);
b[j][i]=a[i][j];
}
printf("\n");
}
printf("array b:\n");
for(i=0;i<=2;i++)
{
for(j=0;j<=1;j++)printf("%5d",b[i][j]);
printf("\n");
}
}
36、数学表达式x<y<z改写为c语言表达式是___________。注:表达式要在英文半角状态下按原表达式顺序书写,且表达式中不要留空格。
37、语言的函数体一般由____和____构成
38、C语言函数是由函数首部和函数体两部分组成。其中,函数首部包括 函数类型、函数名和______。
39、结构化设计中的三种基本结构是 顺序,选择,_____。
40、若有定义:double x[3][5];则数组中列下标的上限为_____ 。