C语言程序设计模拟题C
发布时间:2024-02-04 20:02:11浏览次数:36[试题分类]:C 语言程序设计1. 下列选项中,不属于 C 语言特点的是A. 能实现汇编语言的大部分功能B. 语言简洁、紧凑、使用方便C. 数据类型丰富,可移植性好D. 有较强的网络操作功能答案:D2. 下列选项中,正确的 C 语言标识符是A. \nB. %dC. _123D. #dene答案:C3. 在 C 语言中,错误的 int 类型常数是A. 0B. 038C. 0xAFD. 32765答案:B4. 若有定义“int x=5,y=5,z=5;”,执行语句“x%=y+z;”后,x 的值是A. 6B. 5C. 1D. 0答案:B1
38. C 语言中,函数中只能有一个 return 语句。答案:×39. 定义“int *a[3]”和“int (*a)[3]”具有相同的含义。答案:×40. 对指向一维数组的指针不能进行关系运算。答案:×41. C 语言中,定义变量 fp 为文件型指针的的语句是 FILE *fp。答案:√42. {请写出下列程序的输出结果。#include <stdio.h>#dene N 4 int main() \{ int x1=1,x2=2,i; for(i=1;i<=N;i++) \{ printf("%4d%4d",x1,x2); if(i%2==0) printf("\n"); x1=x1+x2; x2=x2+x1; \} return 0;\}}答案:1 2 3 5 8 13 21 3443. {请写出下列程序的输出结果。#include <stdio.h>int fun(int a) \{ 10
int b=0;static int c=3; b++;c++; return (a+b+c);\}int main() \{ int a=2,i; for(i=0;i<3;i++)printf("%4d",fun(a));return 0;\}}答案:7, 8, 944. {请写出下列程序的输出结果。#include <stdio.h>int main( ) \{ int m=1,n=2,*p=&m,*q=&n,*r; r=p;p=q;q=r;printf("%d,%d,%d,%d\n",m,n,*p,*q); return 0;\}}答案:1,2,2,145. {请写出下列程序的输出结果。#include <stdio.h>int main() \{ char *str="abcde";printf("%c ",*str);printf("%c ",*str++);printf("%c ",*++str);printf("%c ",*(str++));printf("%c ",*(++str));return 0;11
\}}答案:a a c c e12
5. 若有定义“int x=3,y=4,z=5;”,则下列表达式中值不为 1 的是A. 'x'&&'y'B. x<=yC. x||y+z&&y-zD. !((x<y)&&!z||1)答案:D6. 逗号表达式“(a=3*5,a*4),a+15”的值是A. 15B. 60C. 30D. 不确定答案:C7. 若有定义“int i=1,j=2,k=3;”,则执行下列语句后的输出结果是if(i++==1&&(++j==3||k++==3)) printf("%d %d %d\n",i,j,k);A. 1 2 3B. 2 3 4C. 2 2 3D. 2 3 3答案:D8. {若有定义“int x=1,y=1,m=1,n=0;”,则执行下列语句后,变量 x 和 y 的值分别是 switch (m) \{ case 0: x=x*2; case 1: switch (n) \{ case 1: x=x*2; case 2: y=y*2; break; default: x++; \} case 2: x++; y++; case 3: x*=2; y*=2; break; default: x++;y++;2
\}}A. x=6,y=4B. x=2,y=1C. x=3,y=2D. x=7,y=5答案:A9. 语句序列“int i,j; for (i=0, j=1; i<=j+1; i+=2,j--) printf ("%d\n",i);”执行后 i的值是A. 3B. 2C. 1D. 0答案:B10. 若有定义“int n=4;”,则执行语句“while(n--) printf("%d",--n);”后的输出结果是A. 20B. 31C. 210D. 321答案:A11. {若有定义“int x=3;”,则执行下列语句后的输出结果是 do \{ printf("%d ",x-=2); \} while(!(--x));}A. 1B. 3 0C. 1 -2D. 死循环3
答案:C12. 下列关于数组定义、初始化或赋值语句中,正确的是A. int x[5]={1,2,3,4,5,6};B. int n=8; int score[n];C. int a[8]; a[8]=100;D. int x[]={1,2,3,4,5,6};答案:D13. {若有定义“int a[3][3]=\{0,1,2,0,1,2,0,1,2\}, i,j,s=0;”,则执行下列语句后,变量 s 的值是 for(i=0;i<3;i++) for(j=i;j<=i;j++) s=s+a[i][a[j][j]];}A. 9B. 4C. 3D. 1答案:C14. C 语言程序中,调用函数时A. 实参和形参共用一个存储空间B. 实参和形参各自占用一个独立的存储空间C. 由用户指定实参和形参是否共用存储空间D. 由系统指定实参和形参是否共用存储空间答案:B15. 下述函数首部定义形式正确的是A. int f(int x,y)4
B. int f(int x; int y)C. int f(x,y: int)D. int f(int x, int y)答案:D16. 若 p1 和 p2 为指向同一字符串的指针变量,c 为字符变量,则下列语句中,不能正确执行的是A. p2=cB. c=*p2C. p1=p2D. c=*p1+*p2;答案:A17. {下列函数的功能是 fun(char *p2, char *p1) \{ while((*p2=*p1)!='\0') \{ p1++; p2++; \} \}}A. 将 p1 所指字符串的地址赋值给指针 p2B. 检查 p1 和 p2 所指字符串中是否有'\0'C. 对 p1 和 p2 两个指针所指字符串进行比较D. 将 p1 所指字符串复制到 p2 所指内存空间答案:D18. 下列程序段中,枚举变量 c1 和 c2 的值分别是 enum color {red, yellow, blue=4, green, white}; enum colorc1=yellow, c2=white;A. 2,6B. 1,6C. 2,55
D. 2,4答案:B19. {若有如下定义: struct student\{ int num; int age; \} data , *p=&data;则下列选项中,引用 data 中成员 num 正确的是}A. (*p).data.numB. p->data.aC. p.data.aD. (*p).a答案:D20. C 语言中,对文件进行存取的基本单位是A. 记录B. 字节C. 元素D. 簇答案:B21. 若 y 是 int 型变量,则判断 y 为奇数的关系表达式为__________。答案:(y%2)==1 或 y%2 或(y%2)!=022. 下列语句序列执行后的输出结果是__________。int x=10,y=10; printf("%d,%d\n",x--, --y);答案:10,96
23. 若 有 语 句 “ scanf("%d %c %f",&a,&b,&c);” , 假 设 输 入 序 列 为2223a123o.12,则变量 a 和 c 的值分别为 (1) 和 (2) 。答案:(1) 2223 (2) 12324. 下列语句序列执行后的输出结果是__________。int m=5;if(m++>5) printf("%d\n",m);else printf("%d\n",m--);答案:625. {下列语句序列执行后,变量 y 和 a 的值分别是 (1) 和 (2) 。int x=3,y=6,a=0;while(x++!=(y-=1)) \{ a+=1; if(y<x) break;\}}答案:(1) 4 (2) 126. {下列语句序列执行后的输出结果是__________。 for(int i=1; i<6; i++) \{ if (i%2) \{ printf("#"); continue; \} printf("*"); \}}答案:#*#*#27. 若 有 定 义 “ char s1[15]="Good", s2[10]="Morning";” , 则 语 句7
“printf("%d", strlen(strcpy(s1,s2)));”执行后的输出结果为__________。答案:728. {若 有 定 义 “ int a[ ]=\{1,2,3,4,5,6,7,8,9,0\},*p; ” , 则 执 行 语 句 序 列 “ p=a;printf("%d", *p+9); ”后的输出结果是 。}答案:1029. 函数调用语句“func((exp1,exp2), exp3, (exp4,exp5));”中含有__________个实参。答案:330. {若有定义: struct \{ int x; int y; \} d[2]=\{\{1,3\}, \{2,7\}\};则执行语句“printf("%d", d[0].y/d[0].x*d[1].x);”的结果是 。}答案:631. {下列程序的功能是调用函数 sum 完成 1~m 的累加和,并输出结果。请将划线处的语句补充完整。#include <stdio.h>long sum(int n) \{ (1) ;while(n>0)s=s+ (2) ;return s;8
\}int main() \{ int m;long s;scanf("%d",&m);s= (3) ;printf("s=%ld\n",s); return 0;\}}答案:(1) long s=0 (2) n-- (3) sum(m)32. C 语言允许直接访问物理地址。答案:√33. C 语言中,参与运算的变量的数据类型必须完全一致。答案:×34. C 语言中,运算符“=”用于判断两个数是否相等。答案:×35. C 语言中,以“%f”形式输出的所有数字都是有效数字。答案:×36. 在 if 语句中,else 前一个语句可不加语句结束符“;”。答案:×37. C 语言中,for 语句后表示循环控制的三个表达式必须都出现。答案:×9