浙工大C语言复习题与参考答案 联系客服

发布时间 : 星期二 文章浙工大C语言复习题与参考答案更新完毕开始阅读b1eca04b76eeaeaad1f330ac

C程序设计复习题集 目 录

一、C语言程序设计复习题

⒈ 单项选择题 ??????????????????? 41 ⒉ 填 空 题 ??????????????????? 45 ⒊ 写输出结果题 ??????????????????? 46 ⒋ 程序填空题 ??????????????????? 53 ⒌ 编 程 题 ???????????????????? 61 三、C语言程序设计复习题答案

⒈ 单项选择题 ???????????????????? 62 ⒉ 填 空 题 ???????????????????? 63 ⒊ 写输出结果题 ???????????????????? 63 ⒋ 程序填空题 ???????????????????? 64 ⒌ 编程题(参考) ???????????????????? 65

C程序设计习题集 1

C语言程序设计复习题

1 单项选择题

在每小题的四个备选答案中选出一个正确的,并将正确答案号码填在题后括号内。 1. 用C语言编写的源文件经过编译,若没有产生编译错误,则系统将( )。 A、生成可执行目标文件 B、生成目标文件 C、输出运行结果 D、自动保存源文件

2. 在C集成环境执行菜单命令“运行”,若运行结束且没有系统提示信息,说明( )。 A、源程序有语法错误 B、源程序正确无误

C、源程序有运行错误 D、源程序无编译、运行错误,但仅此无法确定其正确性 3. 程序运行输出了错误的结果,可以排除下列哪一个因素( )。

A、算法错误 B、运行时输入数据错误 C、未通过编译 D、系统资源配置不当 4. 下列各个错误中,属于编译错误的是( )。

A、数组下标超界 B、“==”误写为“!=” C、死循环 D、括号不配对 5. 若int类型数据字长为4,其最大值为( )。

A、2 B、2-1 C、2-1 D、2 6. 常数的书写格式决定了常数的类型和值,03322是( )。 A、16进制int类型常数 B、8进制int类型常数 C、10进制int类型常数 D、10进制long int类型常数 7.“e2”是( )。

A、实型常数100 B、值为100的整型常数 C、非法标识符 D、合法标识符 8. 要为字符型变量a赋初值,下列语句中哪一个是正确的( )。

A、char a='3'; B、char a=\、char a=%; D、char a=*; 9. 要为float类型变量x、y、z赋同一初值3.14,下列说明语句哪一个是正确的( )。 A、float x,y,z=3.14; B、float x,y,z=3*3.14; C、float x=3.14,y=3.14,z=3.14; D、float x=y=z=3.14; 10. 语句“float pi=3.1415926535;”将( )。

A、导致编译错误 B、说明pi为初值3.1415926535的单精度实型常数 C、导致运行时的溢出错误 D、说明pi为初值3.141593的单精度实型常数 11. 算术运算符、赋值运算符和关系运算符的运算优先级按从高到低依次为( )。 A、算术运算、赋值运算、关系运算 B、算术运算、关系运算、赋值运算 C、关系运算、赋值运算、算术运算 D、关系运算、算术运算、赋值运算 12. 关系运算符中优先级最低的运算符是( )。

A、“>=”和“<=” B、“>”和“<” C、“==”和“!=” D、“<=”和“<” 13. 逻辑运算符中,运算优先级按从高到低依次为( )。

A、&&,!,|| B、||,&&,! C、&&,||,! D、 !,&&,|| 14. 对C程序在作逻辑运算时判断操作数真、假的表述,下列哪一个是正确的( )。 A、0为假非0为真 B、只有1为真 C、-1为假1为真 D、0为真非0为假 15. 表达式 x==0&&y!=0||x!=0&&y=0等效于( )。

31

31

32

32

2 C程序设计习题集

A、x*y==0&&x+y!=0 B、x*y==0&&(x+y==0) C、x==0||y==0 D、x*y=0||x+y=0 16. 表达式!x||a==b等效于( )。

A、!((x||a)==b) B、!(x||y)==b C、!(x||(a==b)) D、(!x)||(a==b) 17. 下列格式符中,哪一个可以用于以8进制形式输出整数( )。 A、%d B、? C、%o D、%ld 18. 下列格式符中,哪一个可以用于以16进制形式输出整数( )。 A、d B、%8x C、?6 D、%d

19. a是int类型变量,c是字符变量。下列输入语句中哪一个是错误的( )。 A、scanf(\、scanf(\ C、scanf(\、scanf(\

20. 字符变量ch='A',int类型变量K=25,语句printf(\输出( )。 A、65,253 B、65 253 C、65,25 D、A 25 21. 下列各语句序列中,能够且仅输出整型变量a、b中最大值的是( )。 A、if(a>b) printf(\ B、printf(\ C、if(a>b) printf(\ D、if(a

22. 下列各语句序列中,能够将变量u、s中最大值赋值到变量t中的是( )。 A、if(u>s)t=u; t=s; B、t=s; if(u>s)t=u; C、if(u>s)t=s; else t=u; D、t=u; if(u>s)t=s; 23. 下列各语句中,能够输出整型变量a、b中最大值的是( )。

A、printf(\、(a>b)? printf(\ C、printf(\、printf(\24. 下列语句应将小写字母转换为大写字母,其中正确的是( )。

A、if(ch>='a'&ch<='z') ch=ch-32; B、if(ch>='a'&&ch<='z')ch=ch-32; C、ch=(ch>='a'&&ch<='z')?ch-32:''; D、ch=(ch>'a'&&ch<'z')?ch-32:ch; 25. 求整数1至10的和并存入变量s,下列语句中错误的是( )。

A、s=0;for(i=1;i<=10;i++) s+=i; B、s=0;i=1;for(;i<=10;i++) s=s+i; C、for(i=1,s=0;i<=10;s+=i,i=i+1); D、for(i=1;s=0;i<=10;i++) s=s+i; 26. 若sizeof(int)为2,计算1至10的乘积,下列语句序列中正确的是( )。 A、int jc=1; for(int i=2;i<=10;i++) jc*=i; B、for(float jc=1,int i=2;i<=10;i++,jc*=i); C、float jc=1; for(int i=2;i<=10;jc*=i,i=i+1); D、for(float jc=1;i=2;i<=10;i++) jc*=i;

27. 下列语句中,哪一个可以输出26个大写英文字母( )。

A、for(a='A';a<='Z';printf(\、for(a='A';a<'Z';a++)printf(\ C、for(a='A';a<='Z';printf(\、for(a='A';a<'Z';printf(\28. 与语句 while(i>=0&&i<=10) { if(i++==5)continue; printf(\ 功能相同的是( )。

A、for(;i>=0&&i<=10;i++) if(i!=5) printf(\

C程序设计习题集 3

B、for(;i>=0&&i<=10;i++) if(i==5) printf(\

C、for(;i>=0&&i<=10;i++) if(i!=5) printf(\ D、for(;i<=0&&i>=10;i++) if(i!=5) printf(\

29. 下列语句中与语句 while(1){if(i>=100)break;s+=i;i++;} 功能相同的是( )。 A、for(;i<100;i++) s=s+i; B、for(;i<100;i++;s=s+i); C、for(;i<=100;i++) s+=i; D、for(;i>=100;i++;s=s+i); 30. 下列各语句定义了数组,其中哪一个是不正确的( )。

A、char a[3][10]={\、int x[2][2]={1,2,3,4}; C、float x[2][]={1,2,4,6,8,10}; D、int m[][3]={1,2,3,4,5,6}; 31. 下列各语句定义了数组,其中哪一个是正确的( )。

A、char a[10],*p=a[0] B、int d[2][]={1,2,3,4,5,6}; C、float x[][3]={1,2,4,6,8,10}; D、int m[][]={\32. 数组定义为 int a[3][2]={1,2,3,4,5,6},下列表述中正确的是( )。 A、数组元素a[3][2]的值为6 B、数组元素a[6]的值为6 C、数组元素a[0]的值为1 D、a[0]不是int类型的数组元素 33. 用宏名定义一个字符串,下列表述中哪一个是正确的( )。 A、#define pi=3.14159; B、define pi=3.14159 C、#define pi \、#define pi(3.14159);

34. 定义带参数的宏计算两式乘积(如x+3·x-5与x-6),下列定义中哪个是正确的( )。 A、#define muit(u,v) u*v B、#define muit(u,v) u*v; C、#define muit(u,v) (u)*(v) D、#define muit(u,v)=(u)*(v) 35. 宏定义 #define div(a,b) a/b 的引用 div(x+5,y-5) 替换展开后是( )。 A、x+5/y-5 B、x+5/y-5; C、(x+5)/(y-5) D、(x+5)/(y-5); 36. 定义带参数的宏“#define jh(a,b,t) t=a;a=b;b=t”,使两个参数a、b的值交换,下 列表述中哪个是正确的( )。

A、不定义参数a和b将导致编译错误 B、不定义参数a、b、t将导致编译错误 B、不定义参数t将导致运行错误 D、不必定义参数a、b、t类型 37. 下列语句定义p为指向float类型变量d的指针,其中哪一个是正确的( )。 A、float d,*p=d; B、float d,*p=&d; C、float *p=&d,d; D、float d,p=d; 38. 对语句“int a[10],*p=a;”,下列表述中哪一个是正确的( )。

A、*p被赋初值为a数组的首地址 B、*p被赋初值为数组元素a[0]的地址 C、p被赋初值为数组元素a[1]的地址 D、p被赋初值为数组元素a[0]的地址 39. p1指向某个整型变量,要使指针p2也指向同一变量,哪一个语句是正确的( )。 A、p2=*&p1; B、p2=**p1; C、p2=&p1; D、p2=*p1; 40. 假如指针p已经指向变量x,则&*p相当于( )。

A、x B、*p C、&x D、**p 41. 假如指针p已经指向某个整型变量x,则(*p)++相当于( )。 A、p++ B、x++ C、*(p++) D、&x++ 42. 数组定义为“int a[4][5];”,引用“a+3”表示( )。

A、a数组第4列的首地址 B、a数组第1行第4列元素的值

2