Linux就业班C语言基础补习课程测验
日期: 姓名 分数
一、 选择题下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的。请
将正确的答案填在答题卷相应的位置。(每题2分,共30分)
(1) 以下关于C语言的叙述中正确的是
A)C语言中的注释只能出现在语句或表达式的两边 B)C语言中的变量可以在使用之前的任何位置进行定义
C)在C语言算术表达式的书写中,运算符两侧的运算数类型必须一致 D)C语言的数值常量中夹带空格不影响常量值的正确表示
(2) 以下叙述错误的是
A)一个C程序可以包含多个不同名的函数 B)一个C程序只能有一个主函数
C)C程序在书写时?有严格的缩进要求?否则不能编译通过 D)C程序的主函数必须用main作为函数名
(3) 有以下程序
#include
int A=0,B=0,C=0; C=(A-=A-5); (A=B,B+=4);
printf(“%d, %d, %d\\n”,A,B,C); } 程序运行后输出的结果是
A) 0,4,5 B) 4,4,5 C) 4,4,4 D) 0,0,0
(4) 有如下嵌套的if语句
if(a
if(a if(b 以下选项中与上述if语句等价的语句是 A) k=(a B) k=(ac) ? b:c); C) k=(a D) k=(a (5) 有以下程序 #include } 程序运行后的结果是 A) 1,2,4 B) 1,3,6 C) 3,10,10 D) 3,10,14 (6) 有以下程序(a,b,c的ascii码值分别为97,98,99) #include char *s={\ do { printf(\ ++s; } while (*s); } 程序运行后的输入结果是 A)abc B)789 C)7890 D)979899 (7) 有以下程序 #include int i,j,m=1; for(i=1;i<3;i++) { for(j=3;j>0;j--) { if(i+j > 3) } continue; m *= i*j; } printf(“m=%d\\n”,m); } 程序运行后的输出结果是 A) m=6 B) m=2 C) m=4 D) m=5 (8) 下列语句组中,正确的是 A) char *s;s=”Olympic”; B) char s[7]; s=”Olympic”; C) char *s;s={“Olympic”}; D) char s[7]; s={”Olympic”}; (9) 以下关于return语句的叙述中正确的是 A)一个自定义函数中必须有一条return语句 B)一个自定义函数中可以根据不同情况设置多条return语句 C)定义成void类型的函数中可以有带返回值的return语句 D)没有return语句的自定义函数在执行结束时不能返回到调用处 (10) 设有定义double a[10], *s=a;,以下能够代表数组元素a[3]的是 A)(*s)[3] B)?*(s+3) C) *s[3] D)?*s+3 (11) 若有以下定义和语句 char s1[10]=”abcd!”,?s2=”\\n123\\\\”; printf (”%d %d\\n”, strlen(s1), strlen(s2) ); 则输出结果是 A) 5 5 B) 10 5 C) 10 7 D) 5 8 (12) 有以下程序 #include static int n = 0; n += m; return n; } main ( ) { int n=0; printf(“%d,”, f(++n)); printf(“%d\\n”, f(n++)); } 程序运行后的输出结果是 A)1,2 B)1,1 C)2,3 D)3,3 (13) 以下选项中叙述错误的是 A)C程序函数中定义的赋有初值的静态变量,每调用一次函数,赋一次初值 B)在C程序的同一函数中,各复合语句内可定义变量,其作用域仅限于本复合语句内 C)C程序函数中定义的自动变量,系统不自动赋确定的初值 D)C程序函数的形参不可以说明为static型变量 (14) 有以下程序 void fun(char *w, int m) { char s,*p1, *p2; p1 = w; p2 = w+m-1; while (p1 s=*p1; *p1=*p2; *p2=s; p1++; p2--; } } main( ) { Char a[]=\ fun( a, strlen(a) ); puts(a); } 程序运行后的输出结果是 A)654321 B)116611 C)161616 (15) 有以下程序 void swap(int a, int b) { int t = a; a = b; b = t; } int main() { int m = 3, n = 4; swap(m++, ++n); printf(\} 程序运行后的输出结果是 D)123456 A)5,4 B)4,5 C)3,4 D)4,3 二、 填空题,请将每空正确的答案写在答卷的相应位置。((1)—(8)题,每题 2分,第(9)题6分,共22分) (1) 设a、b、c都是整型变量?如果a的值为1?b的值为2?则执行c=a++||b++语句后变量a、b 的值分别是 。 (2) unsigned char a = 255; char b=a; printf(“%d”,b); 输出结果为: 。 (3) 请写出浮点型变量a与10比较是否相等的表达式: 。 (4) int i=10, j=10, k=3; k*=i+j; k最后的值是 40 ? (5) int a=1, b=2, c=a>=1||++b; b++; printf(“%d”, b); 输出结果为: 3 。 (6) void main() { int x = 1,y = 2; printf(\ printf(\ printf(\ }上面程序输出的结果是: 2 , 3 , 。 (7) 以下程序段的输出结果是 “red”,”green”,”blue”main() { char *ch[4]={“red”,”green”,”blue”}; int i=0; while (ch[i]) { putchar (ch[i][0]); i++; } } (8) 有以下程序 void fun(char *str) { char temp; int n,i; n = strlen (str); temp = str[n-1]; for (i=n-1; i>0; i--) str[i] = str[i-1]; str[0] = temp; } main() { char s[50]; scanf(“%s”,s); fun(s); printf(“%s\\n”,s); 乱码 。