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