C语言程序设计模拟题B

发布时间:2024-02-04 20:02:11浏览次数:4
[试题分类]:C 语言程序设计1. 下列叙述中,错误的是A. 程序就是软件,但软件不仅仅是程序B. 计算机语言只能编写程序而不能表示算法C. 程序是指令的集合,计算机语言是编写程序的工具D. 计算机语言都是形式化的语言,都有语法规则和定义答案:B2. 下列选项中,属于 C 语言关键字的是A. beginB. nalC. structD. public答案:C3. 若有定义“int i; oat f;”,则下列语句中,正确的是A. (int f)%i;B. int(f)%i;C. int(f%i);D. (int)f%i;答案:D4. 在 C 语言中,数字 029 是一个A. 八进制数B. 十进制数C. 十六进制数1 40. 对于指向同一个数组的两个变量而言,两个指针变量相减操作是有意义的。答案:√41. 结构体变量在内存中所占的字节数是其各个成员所占字节的总和。答案:√42. {请写出下列程序的输出结果。#include <stdio.h>int main() \{ char str[ ]="1A2B3C4D"; int i; for(i=0;str[i]!='\0';i++) if ((str[i]<'0') || (str[i]>'9'))printf("%c",str[i]); return 0;\}}答案:ABCD43. {请写出下列程序的输出结果。#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);printf("%d ",n);n=fun(m);printf("%d ",n); return 0;\}}10 答案:5 644. {请写出下列程序的输出结果。#include <stdio.h>int main( ) \{ static int a[]={1,2,3,4,5,6,7,8,9,0},*p=a;printf("%d\n ",*p);printf("%d\n ",++(*p));printf("%d\n ",*p+9);printf("%d\n ",*(p+9));printf("%d\n ",*++p+9);\}}答案:1 2 11 0 1145. {请写出下列程序的输出结果。#include <stdio.h>int main() \{ int a=10, b=5, c=5, d=5;int i=0, j=0, k=0;for ( ; a>b; ++b ) i++;while (a>++c) j++;do k++;while (a>d++) ; printf("%d,%d,%d\n", i,j,k);return 0;\}}答案:5,4,611 D. 非法数答案:D5. 若有定义“int i=1,j;”,执行语句“j=-i++;”后,j 的值是A. 1B. 2C. -1D. -2答案:C6. 若有定义“char c='A'; int i=1,j;”,执行语句“j=!c&&i++;”后,i 和 j 的值是A. 1,1B. 1,0C. 2,1D. 2,0答案:B7. 若有定义“int x=1,y=-1;”,则语句“printf("%d",(x--&&++y));”的输出结果是A. 1B. 0C. -1D. 2答案:B8. 若用 s1 和 s2 代表 C 语言的语句,则下列条件语句中,在功能上与其他 3 条语句不等价的是A. if(a) s1; else s2;B. if (a==0) s2; else s1;C. if(a!=0) s1; else s2;D. if (a==0) s1; else s2;答案:D9. {2 若有定义“int i=10;”,则执行下列语句后,变量 i 的值为 switch (i) \{ case 9: i+=1; case 10: i+=1; case 11: i+=1; default : i+=1; \}}A. 10B. 11C. 12D. 13答案:D10. 执行语句“for(i=0;i++<3;);”后,变量 i 的值为A. 2B. 3C. 4D. 5答案:C11. 若有如下语句序列,则 while 循环执行的次数是 int k=0; while (k=1) k++;A. 无限次B. 执行一次C. 一次也不执行D. 有语法错,不能执行答案:A12. {若有定义“int a=5;”,则执行下列语句后的输出结果是 do \{3 printf("%2d\n",a--); \} while(!a);}A. 无输出B. 死循环C. 5D. 4答案:C13. 要说明一个有 10 个整型元素的数组,应当选择语句A. int a[10];B. int a[2,5];C. int a[ ];D. int *a[10];答案:A14. {若有定义“int i,x[3][3]=\{1,2,3,4,5,6,7,8,9\};”,则执行下列语句后的输出结果是 for(i=0;i<3;i++) printf("%d",x[i][2-i]);}A. 159B. 147C. 357D. 369答案:C15. 凡在函数中未指定存储类别的变量,其隐含的存储类别为A. 自动(auto)B. 静态(static)C. 外部(extern)D. 寄存器(register)4 答案:A16. C 语言中的函数A. 可以嵌套定义B. 不可以嵌套调用C. 可以嵌套调用,但不能递归调用D. 嵌套调用和递归调用均可答案:D17. 若有定义“char s[10],*p=s;”,则下列语句中,错误的是A. p=s+5B. s=p+s;C. s[2]=p[4];D. *p=s[0];答案:B18. {若有定义“int a[]=\{1,2,3,4\},y,*p=&a[1];”,则执行语句“y=(*--p)++;”后,变量 y 的值为}A. 1B. 2C. 3D. 4答案:A19. {若有如下定义: struct dent\{ int n; int *m;5 \}; int a=1,b=2,c=3;struct dent s[3]=\{\{101,&a\},\{102,&b\},\{103,&c\}\}, *p=s;则下列表达式中,值为 2 的是}A. (p++)->mB. *(p++)->mC. (*p).mD. *(++p)->m答案:D20. 要打开一个已存在的非空文件“le”用于修改,下列选项中,正确的是A. fp=fopen("le","r");B. fp=fopen("le","a+");C. fp=fopen("le","w");D. fp=fopen("le","r+");答案:D21. C 语言中,表达式的值为     时表示逻辑“真”。答案:非 022. 若有定义“int a,b;”,执行语句“b=a=3,6*a;”后,变量 a 和表达式的值分别为(1)    和   (2)    。答案:(1) 3 (2) 1823. 下列语句序列执行后的输出结果是__________。int x=5; x+=x*=3; printf("%d\n",x);答案:3024. 下列语句序列执行后的输出结果是__________。6 int x=6,y=8,r=x;if (x<y) r=y;r*=r;printf("%d\n",r);答案:6425. {下列语句序列执行后变量 s 的值是    。int s=0,i=1;while(s<=10) \{ s+=i*i; i++;\}}答案:1426. 下列语句序列执行后的输出结果是__________。int x=10,y=10,i;for(i=0;x>8;y=++i) printf("%d %d",x--,y);答案:10,10,9,127. 若有定义“char s[15]= "ab\n\012\\\"";”,则语句“printf("%d", strlen(s);”执行后的输出结果为__________。答案:628. {函数 fact 的功能是计算 n(n>0)的阶乘,请将划线处的语句补充完整。 int fact(int n) \{ if (n<=0) printf("data error\n"); if (n==1)    (1)    ; else    (2)     ; \}}7 答案:(1) return 1; (2) return fact(n-1)*n;29. 下列语句序列执行后的输出结果是__________。char *aa="then", *bb="than";aa+=1; bb+=1;printf("%d\n", strcmp(aa,bb));答案:030. {若有定义: struct \{ int x; char *y; \} tab[2]=\{\{1,"ab"\}, \{2,"cd"\}\}, *p=tab;则执行语句“printf("%c",*(++p)->y);”的结果是     。}答案:c31. {下列程序的功能是从终端读入 10 个数据到数组中,统计其中正数的个数,并计算它们的和。请将划线处的语句补充完整。#include <stdio.h>int main() \{ int i,a[10],sum=0,count=0;for(i=0;i<10;i++) scanf("%d", (1) );for(i=0; (2) ;i++)if(a[i] (3) ) \{count++; sum+=a[i]; \}printf("sum=%d,count=%d\n",sum,count);return 0;\}}答案:(1) &a[i] (2) i<10 (3) >08 32. C 语言中,语句必须以“;”结束。答案:√33. 表达式 (j=3, j++) 的值是 4。答案:×34. C 语言与其他高级语言一样,对于所有的同级运算符均遵循右结合原则。答案:×35. 在 if...else 语句中,else 总是和它上面最近且未曾配对的 if 配对。答案:√36. 语句 for(; ; ) {循环体} 和 while(1) {循环体}是等价的。答案:√37. 在 C 语言中,使用函数 strcpy 时可以将一个字符串的所有字符(包含'\0')复制到另一个数组中。答案:√38. 在 C 程序中,函数调用只能出现在表达式语句中。答案:×39. 在 C 程序中,函数调用时用数组名作为函数的实参,则传递给形参的是数组的首元素值。答案:×9
文档格式: docx,价格: 5下载文档
返回顶部