問題一覧
1
程序经过编译生成的是( )
目标文件
2
要运行编写好的C语言源程序,必须经过__________后生成目标文件,再经过连接生成_________________文件
编译, 可执行
3
已知三角形的底为a,高为b,用C语言书写正确的面积公式为( )
1.0/2*a*b
4
According to the declaration: int x=23; the value of expression x++*1/3 is __.
7
5
下列标识符中,不合法的是( )。
#PI
6
若有以下程序段 int c1=1,c2=2,c3; c3=1.0/c2*c1; 则执行后,c3中的值是( )。
0
7
已知字母A的ASCII码为十进制数65,且ch为字符型变量,则执行语句ch='A'+'6'-'3';后,ch中的值为__。
68
8
C语言中最简单的数据类型包括( )。
整型,实型,字符型
9
表达式__的值是0。
3/5
10
读下列程序,写出程序的输出结果。 #include <stdio.h> void main() { int x=10,y=10; printf(“%d,%d\n”,x--,--y); } 输出结果为:
10,9
11
C语言中普通单精度浮点型变量的类型说明符为 ,在内存中占 字节。
float, 4
12
下列常数中,不合法的C语言常量是( )。
abc
13
字符串"\\123456\\\\\n"在内存中占用的字节数是( )。
11
14
在C语言中,下列数据类型属于基本类型的是( )。
整型、字符型、浮点型
15
下列转义字符中,错误的是( )。
'\0x5a'
16
下列关于C语言标识符的叙述中正确的是( )。
第一个字符必须是字母或下划线
17
与k=++n完全等价的表达式是( )。
n=n+1, k=n
18
设有变量定义char a='a'; int i=3, j=5, b; float x=2.5; double y=5.0, z; 计算下面表达式的值。 Z=(i++)*(j++)
15,0
19
设有变量定义char a='a'; int i=3, j=5, b; float x=2.5; double y=5.0, z; 计算下面表达式的值。 i-=j*=x+y
-34
20
设有变量定义char a='a'; int i=3, j=5, b; float x=2.5; double y=5.0, z; 计算下面表达式的值。 (int)y% i %(int)(x+y)
2
21
设有变量定义char a='a'; int i=3, j=5, b; float x=2.5; double y=5.0, z; 计算下面表达式的值。 y=(x=2,x+1,x+2)
4,0
22
写出下列程序的输出结果。 程序代码如下: #include <stdio.h> int main(void) { int i, j, m, n; i=10; j=10; m=++i; n=j++; printf("i=%d, j=%d, m=%d, n=%d", i, j, m, n); return 0; }
i=11, j=11, m=11, n=10
23
字符串常量“Hello,everyone!”占据的内存空间为 字节
16
24
设有变量定义char a='a'; int i=3, j=5, b; float x=2.5; double y=5.0, z; 计算下面表达式的值。 (float)i/(++j)
0,5
25
写出下列程序的输出结果。 程序代码如下: #include <stdio.h> int main(void) { int a,b,c; a=(b=(c=3)*4)*5-6; printf("a=%d;b=%d;c=%d\n",a,b,c); return 0; }
a=54;b=12;c=3
26
表达式10+'a'+1.5-0.5*'b'的结果是 。
59,5
27
以下程序的输出结果是( )。 #include<stdio.h> void main( ) {printf(''%d\n'',NULL);}
0
28
已知字符 'b' 的ASCII码为98,语句 printf("%d,%c", 'b', 'b'+1 ); 的输出为( ) 。
98,c
29
C语言程序的3种基本结构是( )。
顺序结构.选择结构和循环结构
30
设 x=011; 执行printf (“%d”, x); 的输出是( )。
9
31
The value of expression sizeof("\num=%d\t") is :
8
32
若a是基本整型变量,c是单精度实型变量,输入语句____是错误的。
scanf("%d%f”, a, c);
33
Supposing all the following variables are declared correctly. If executing the statement scanf("%d%c%f", &op1, &op, &op2);,the values of op1, op and op2 are 1,* and 2.0, respectively, the the input must be ___.
1*2
34
假设有double s1,s2; ,下列语句中正确的是( )。
scanf("%lf%lf",&s1,&s2);
35
请阅读下面的程序,写出程序执行后的输出。 #include <stdio.h> int main() { int i=0; printf("%d\n",i); printf("%d\n",i++); printf("%d\n",i++); printf("%d\n",++i); printf("%d\n",i); return 0; }
0 0 1 3 3
36
结构化程序设计的三种基本程序结构为顺序结构、 和选择结构。
循环结构
37
已知int x=10,y=20,z=30;,以下语句执行后x,y,z的值是( )。 if (x>y) z=x;x=y;y=z
x=20,y=30,z=30
38
下列表达式中,值为0的表达式是( )。
9>6>3
39
语句if (!i ) i++; 中的条件表达式 !i 等价于( )。
i==0
40
C语言中对嵌套if的规定是:else总是与( )配对。
其之前最近的且尚未配对的if
41
为表示关系x<y<z,应使用C语言表达式( )。
(x<y)&&(y<z)
42
逻辑运算符两侧运算对象的数据类型( )。
可以是任何类型的数据
43
假设有:int a=100, b=80,c=30; 在下列选项中,结果为“真”的是( )。
!(b>a)||(a-90>c)
44
设x.y.t均为int型变量,则执行语句:x=y=3; t= ++x || ++y; 后,y的值为__。
3
45
下列运算符中优先级最高的运算符是( )。
!
46
在下面的程序中,假设程序开始执行后用户输入4和6,请写出程序执行后的输出。 #include <stdio.h> int func1(int a,int b){ return a+b; } int func2(int a,int b){ return a-b; } int func3(int a,int b){ return a*b; } int main(){ int a,b; scanf("%d%d",&a,&b); switch(a+b){ case 10: printf("%d\n",func1(a,b)); printf("%d\n",func2(a,b)); printf("%d\n",func3(a+1,b+1)); case 11: printf("%d\n",func2(a,b)); printf("%d\n",func1(a,b)); break; case 12: printf("%d\n",func3(a+1,b+1)); printf("%d\n",func1(a,b)); printf("%d\n",func2(a,b)); } return 0; }
10 -2 35 -2 10
47
假设x=4,y=2,m=5,n=4,w=12,t=9,则经过表达式(w=x<y)&&(t=m-n)之后,w=__________,t=_____________。
0, 9
48
下列程序的输出结果为: #include <stdio.h> int main() { int a=10; switch(a) { case 10 : case 9 : a++; case 8: case 7: a+=2; break; case 6: a+=3; default: a+=4; } printf("a=%d\n",a); return 0; } 输出结果为:
a = 13
49
假设有int a=10,b=20; 表达式 a>b?a+7:b-13 的值为 。
7
50
为解决一个问题而采取的方法和步骤称为 。
算法
51
下列程序的输出结果为: #include<stdio.h> int main(){ int i,m=0,n=0,k=0; for(i=9; i<=11;i++) switch(i%10){ case 0: printf("%d\n",m); m++; n++; break; case 1: printf("%d\n",n); n++; break; default: k++; n++; } printf("%d %d %d\n",m,n,k); return 0; }
0 2 1 3 1
52
若有以下语句 int x = 3; do { printf("%d ", x -= 2); } while (!(--x)); 运行后输出( )。
1 -2
53
以下4个关于C语言的结论中,错误的是( )。
do-while语句与while语句的区别仅是关键字“while”出现的位置不同;
54
设已定义i和k为int类型变量,则以下for循环语句( )。 for(i=0,k=-1;;i++,k++) printf(''* * * *\n'');
是无限循环
55
下列选项中,用于提前终止循环的语句是( )。
break
56
有如下程序段,其中语句 x--; 执行的次数是( )。 int x = 10; while ( x = 0 ) x--;
0次
57
填空,使下程序执行后输出如图所示的菱形, * * * * * * * * * * * * * * * * #include <stdio.h> void main( ) { int i , j ; for( i=1; i<=4; i++) { for (j=1; j<= (1) ; j++) putchar(32); // 输出1个空格 for (j=1; j<= (2) ; j++) putchar('*'); putchar('\n'); } }
4-i, 2*i-1
58
读下列程序,写出程序的输出结果。 #include <stdio.h> void main() { int k=4, n=0; for (;n<k;) { n++; if (n%3!=0) continue; k--; } printf (“%d,%d\n”,k,n); } 输出结果为:
3, 3
59
读下列程序,写出程序的输出结果。 #include <stdio.h> int main( ) { int a,b; for(a=1,b=1;a<=100;a++) { if(b>=20) break; if(b%3==1) b+=3; continue; b-=5; } printf(''a = %d\n'', a); return 0; } 输出结果为:
a = 8
60
下面程序用于计算1-1/3+1/5-1/7+……的前20项之和,按要求完善程序。 #include <stdio.h> int main() { int i,flag=1; double sum=0; for(i=1;i<=(1) ;i++) { sum=sum+((2) ); flag=(3) ; } printf("sum=%f\n",sum); return 0; }
20, flag*1.0/(2*i-1), -flag
61
下面给出一个函数power,该函数用于计算整数x的n次幂并返回(假设n为正整数)。请将程序中没有给出的部分补全,使该函数可以完成上述功能。 int power(int x,int n){ int (1) ; int i; for(i=1; (2) ;i++) z=z*n; return z; }
z=1, i<=n
62
假设有:int i; for(i=0;i<=10;i=i+3) printf("%d",i); 该循环执行的次数为 次。
4
63
读下列程序,写出程序的输出结果。 void main() { int a; for ( a=0; a<3; a++ ) switch (a) { case 1: printf ("aa\n"); case 2: printf ("bb"); default: printf ("cc"); } } 输出结果为:
ccaabbccbbcc
64
读下列程序,写出程序的输出结果。 #include <stdio.h> void main() { int x=1; do{ printf("%d ",x--); } while(!x); }
10
65
下列关于C语言中数组的描述中错误的是( )。
在函数调用中使用数组名作函数实参时,向形参传递的是整个数组所有的元素
66
下列选项中,不能把字符串 "Hello!" 存入数组b中的是( )。
char b[10]; b="Hello!";
67
下面正确定义数组的语句是( )。
int x[][2]={8,9,5,2}
68
有语句int a[][3] = {1,2,3,4,5,6}; 则a[1][1]的值是( )。
5
69
以下对二维数组a进行不正确的初始化的是( )。
int a[][]={{3,2,1},{1,2,3}};
70
判断两个字符串s1和s2是否相等,应该使用( )。
if (strcmp(s1,s2)= =0)
71
已知如下语句,判断下面描述正确的是( )。 char s[6]={ 'a','b','c','d' }; char r[]="abcd";
s数组长度大于r数组的长度
72
下列哪个数组定义是正确的( )。
int a[3+2];
73
下面程序的功能是求数组s中的最大元素及它的下标,按要求完善程序。 #include <stdio.h> main() { int s[4][4],max,i,j,row,col; for(i=0;i<4;i++) for(j=0;j<4;j++) scanf(“%d”,(1) ); (2) ; for(i=0;i<4;i++) for(j=0;j<4;j++) if (s[i][j]>max) { (3) ; row=i;col=j; } printf(“s[%d][%d]=%d\n”,row,col,max); }
&s[i][j], max=s[0][0];, max=s[i][j];
74
以下程序完成的功能是:将一个字符数组中存储的字符串复制到另一个字符数组中然后输出,不使用strcpy函数,请将程序中的空白填写完整。 #include <stdio.h> #include <string.h> #define MAX 20 void main(){ char s[MAX]="Hello World!", t[MAX]; int i; for(i=0;(1) ;i++) (2) printf("%s\n%s\n",s,t); }
i<MAX, t[i]=s[i];
75
读下列程序,写出程序的输出结果。 #include <stdio.h> #include <string.h> int main(){ char s1[ ]="ILoveCprogram"; char s2[ ]="ILoveCProgram"; char *p1= s1, *p2= s2; int i; for (i=0; i<strlen(s1); i++){ if (*(p1+i)==*(p2+i)) printf ("%c", *(p1+i)); else break; } printf("\n"); printf("%d\n",i); return 0; }
ILoveC 6
76
把字符数组中的字符串按反序存放,例如:字符串"ABCD"的输出结果应为"DCBA",请填空。 #include<stdio.h> #include<conio.h> #include<string.h> main() { char a[100],t; printr(“输入字符串:\n”); scanf("%s",a); int i,j; for(i=0,j=strlen(a);i<strlen(a)/2;i++,j--) { t=a[i]; (1) ; (2) ; } printf(“转换后的字符串是:%s\n”,a); }
a[i]=a[j-1], a[j-1]=t
77
以下程序完成的功能是:统计一个整型数组中所有能被7整除也能被9整除的数的个数并输出。请根据以上描述,将程序中的空白填写完整。 #include <stdio.h> int main(){ int num[10],i; for(i=0;i<10;i++) scanf("%d",&num[i]); int count; for(i=0, ;i<10;i++){ //(1) if( ) //(2) count++; } printf("count=%d\n",count); return 0; }
count=0, num[i]%7==0&&num[i]%9==0
78
读下列程序,写出程序的输出结果。 #include <stdio.h> int main(){ int a[5]= {1,3,5,7,9}; int b[5]= {2,4,6,8,10}; int c[5]; int i; for(i=0;i<5;i++){ if(i%2!=0) c[i]=a[i]+b[i]; else c[i]=a[i]-b[i]; } for(i=0;i<5;i++) printf("%d ",c[i]); printf("\n"); return 0; }
-1 7 -1 15 -1
79
有函数调用语句:func(rec1,rec2+rec3,(rec4,rec5));,此语句的实参数为( )。
3
80
下列关于C语言中函数参数的叙述正确的是( )。
实参与其对应的形参各自占据独立的存储单元
81
一个C语言程序是由( )组成的。
函数
82
下列关于C程序的描述正确的是( )。
C程序总是从main函数开始执行
83
在一个C程序中( )。
main函数可以在任何地方出现。一个C程序必须有且仅有一个main函数。
84
C语言程序的基本单位是( )。
函数
85
下列关于变量存储方式的描述中错误的是( )。
局部变量都是静态存储的
86
关于C程序,下列叙述正确的是( )。
main函数出现的位置不确定。一个C程序必须有且仅有一个main函数。
87
若用数组名作为函数调用时的实参,则传递给形参的是( )。
数组的首地址
88
在C语言程序中,以下说法正确的是( )。
函数的定义不可以嵌套,但函数的调用可以嵌套
89
若程序中定义了以下函数 double myadd(double a,double b) { return (a+b); } 并将其放在调用语句之后,则在调用之前应该对该函数进行说明,以下选项中错误的说明是( )。
double myadd(double a,b)
90
下列关于函数的描述中错误的是( )。
一个函数的函数体中只能有一个return语句
91
在调用一个函数的过程中又出现直接或间接地调用该函数本身,称为函数的 调用。
递归
92
请阅读下面的程序,写出程序执行后的输出。 #include <stdio.h> void add(int a, int b){ a+=3; b*=6; printf("a=%d, b=%d\n",a,b); } int main(){ int x=1, y=2; add(x, y); printf("x=%d, y=%d\n", x, y); return 0; }
a=4, b=12 x=1, y=2
93
下面给出一段程序,在主函数中调用average函数。average函数可以计算主函数中的数组arr的所有元素的平均值并返回。请将程序中没有给出的部分补全,使该程序可以完成上述功能。 #include <stdio.h> double average( (1) , int length){ int i; double sum=0; for(i=0;i<length; (2) ) sum=sum+array[i]; return (3) ; } int main(){ double arr[5]={4.5, 7.8, 9.0, 13.4, 20.1}; double aver=average(arr, 5); printf("aver=%.2f\n", aver); return 0; }
double array[], i++, sum/length
94
在C语言中进行函数调用时,有两种不同的参数传递方式,即__________传递方式和________________传递方式。
值, 地址
95
请阅读下面的程序,写出程序执行后的输出。(提示:输出共有5行) #include <stdio.h> void swapArray(int a[ ],int b[ ],int length); int main(){ int arr1[3]={1,3,5}; int arr2[3]={2,4,6}; int i; for(i=0;i<3;i++) printf("%d ",arr1[i]); printf("\n"); for(i=0;i<3;i++) printf("%d ",arr2[i]); printf("\n"); swapArray(arr1,arr2,3); for(i=0;i<3;i++) printf("%d ",arr1[i]); printf("\n"); for(i=0;i<3;i++) printf("%d ",arr2[i]); printf("\n"); return 0; } void swapArray(int a[],int b[],int length){ int i,temp; printf("swapping now\n"); for(i=0;i<length;i++){ temp=a[i]; a[i]=b[i]; b[i]=temp; } }
1 3 5 , 2 4 6, swapping now, 2 4 6, 1 3 5
96
函数的首行(即函数首部)称为 。
函数原型
97
读下列程序,写出程序的输出结果。 #include <stdio.h> int fun(int x) { static int a=3; a+=x; return a; } int main( ) { int k=2,m=1,n; n=fun (k); n=fun (m) printf("n = %d",n); return 0; } 输出结果为:
n = 6
98
下列关于函数的叙述中,正确的是( )。
函数中定义的静态局部变量不能被另一函数直接访问
99
如果将main函数名字误写为mian将导致( )。
连接错误
100
下列选项中,错误的是( )
所有函数之间可以互相调用