???
语言程序设计?
??
?
复?习?题?
目
录
选择题 ................................ 3
知识点1:C程序的基本结构和算法基本概念 ................................................................................................. 3 知识点2:数据和表达式计算 .................................................................................................................................. 3 知识点3:输入输出 ..................................................................................................................................................... 1 知识点4:逻辑量和逻辑表达式 ............................................................................................................................. 1 知识点5:位运算 .......................................................................................................................................................... 1 知识点6:选择结构和if、switch 语句 .............................................................................................................. 1 知识点7:循环结构 while 、do~while和for语句 ..................................................................................... 1 知识点8:数组的基本概念和引用 ........................................................................................................................ 2 知识点9:变量的作用域和生存期 ........................................................................................................................ 2 知识点10:函数 ............................................................................................................................................................ 2 知识点11:指针及其应用 ......................................................................................................................................... 3 知识点12:结构体和共用体 .................................................................................................................................... 4 知识点13:用typedef声明数据类型 ................................................................................................................... 4 知识点14:文件 ............................................................................................................................................................ 4 知识点15:编译预处理 ................................................................................................................................................. 4
选择题答案: ........................ 5 程序填空题 .............................. 6
知识点1:顺序,选择结构 ....................................................................................................................................... 6 知识点2:循环结构 ..................................................................................................................................................... 6 知识点3:函数 ............................................................................................................................................................... 7 知识点4:数组 ............................................................................................................................................................... 8 知识点5:指针 ............................................................................................................................................................... 9
程序填空答案: ...................... 9 写出程序运行的结果 ......................... 11
知识点1:选择结构 .................................................................................................................................................. 11 知识点2:循环结构 .................................................................................................................................................. 11 知识点3: 数组.......................................................................................................................................................... 12 知识点4:函数 ............................................................................................................................................................ 13 知识点5:指针 ............................................................................................................................................................ 14
程序运行答案: ..................... 15 编程题 ............................... 17
?
?
选择题
知识点1:C程序的基本结构和算法基本概念 1. C语言程序的基本单位为_______。
A) 程序行 B) 语句 C) 函数 D) 字符 2. 用C语言编写的代码程序______。
A) 可立即执行 B) 是一个源程序
C) 经过编译即可执行 D) 经过解释就能执行 3. 以下叙述中正确的是______。
A) 用C程序实现的算法必须要有输入和输出操作 B) 用C程序实现的算法可以没有输出但必须要输入 C) 用C程序实现的算法可以没有输入但必须要有输出 D) 用C程序实现的算法可以既没有输入也没有输出
4. 结构化程序由三种基本结构组成,三种基本结构组成的算法____。
A) 可以完成任何复杂的任务 B) 只能完成部分复杂的任务 C) 只能完成符合结构化的任务 D) 只能完成一些简单的任务 5. 在一个C程序中______。
A) main函数必须出现在所有函数之前 B) main函数可以在任何地方出现
C) main函数必须出现在所有函数之后 D) main函数必须出现在固定位置
6. 下列关于C语言的叙述错误的是______。
A) 大写字母和小写字母的意义相同
B) 不同类型的变量可以出现在同一个表达式中
C) 在赋值表达式中赋值号(=)左边的变量和右边的值可以是不同类型 D) 某些运算符号在不同的场合可以有不同的含义 7. 以下叙述中错误的是_______。
A) C程序中的#include和#define行均不是C语句 B) 除逗号运算符外,赋值运算符的优先级最低 C) C程序中,j++;是赋值语句
D) C程序中,+,-,*,/,%号是算术运算符,可用于整型和实型数的运算 8. 以下程序的功能是给r输入数据后计算半径为r的圆面积s。程序在编译
时出错,出错的原因是________。 main()
/* Beginning */ { int r; float s; scanf(\
s=p*r*r; printf(\}
A) 注释语句书写位置错误
B) 存放圆半径的变量r不应该定义为整型 C) 输出语句中格式描述符非法
D) 计算圆面积的赋值语句中使用了非法变量 知识点2:数据和表达式计算
9. 以下标识符中,不能作为合法的C语言用户定义标识符的是_____。
A) a3 B) if C) _123 D) IF 10. 以下数据中,不正确的数值或字符常量是_____。
A) 011 B) 3.987E-2 C) 018 D) 0xabcd 11. 若变量x、y已正确定义并赋值,以下符合C语言语法的表达式是______。
A) ++x,y=x-- B) x+1=y C) x=x+10=x+y D) double(x)/10 12. 以下不正确的C语言用户自定义的标识符是____。
A) int B) a_1_2 C) ab1exe D) _x 13. 以下是正确的C语言标识符是____。
A) #define B) _123 C) %d D) \\n 14. 正确的自定义标识符是_______。
A) if B) iF C) a*b D) 8bq 15. 正确的自定义标识符是________。
A) a=2 B) a+b C) name D) default
16. 以下合法的C语言的关键字是________。
A) NULL B) file C) include D) typedef 17. 在C语言中,错误的常量是______。
A) 1E+0.0 B) 5 C) 0xaf D) 0L
18. 在C语言中,错误的int类型的常数是____ 。
A) 32768 B) 0 C) 037 D) 0XAF 19. C语言中最简单的数据类型包括_______。
A) 整型、实型、逻辑型 B) 整型、实型、字符型 C) 整型、字符型、逻辑型 D) 整型,实型,逻辑型,字符型 20. 下列变量定义中合法的是_______。
A) short_a=1.1e-1; B) double b=1+5e2.5; C) long do=0xfdaL; D) float 2_and=1.e-3; 21. 在C语言中,整数-8在内存中的存储形式是________ 。
A) 1111 1111 1111 1000 B) 1000 0000 0000 1000 C) 0000 0000 0000 1000 D) 1111 1111 1111 0111 22. C语言中字符型(char)数据在内存中的存储形式是____。
A) 原码 B) 补码 C) 反码 D) ASCII码
23. 将字符'g'(AscII码值(八进制)为147)赋给字符变量c,正确的表达式是__。A) c=\\147 B) c=\ C) c=' \\147' D) c='0147'
24. 将空格字符(AscII码值为32)赋给字符变量c,正确的赋值语句是____。
A) c='\\0' B) c=NULL C) c=0 D) c=32 25. 字符串\的长度是____。
A) 8 B) 9 C) 14 D) 非法字符串 26. 字符串\的长度是____。
A) 0 B) 1 C) 2 D) 非法字符串 27. 错误的转义字符是____。
A) '\\091' B) '\\\\' C) '\\0' D) '\\'' 28. 以下字符中,不正确的C语言转义字符是_____。
A) '\\\\' B) '071' C) '\\b' D) '\\xaa' 29. 执行以下程序段后,c3变量的值是_____。
int c1=1,c2=2,c3; c3=c1/c2;
A) 0 B) 1/2 C) 0.5 D) 1 30. 设有 int x=11; 则表达式 (x++ * 1/3) 的值是_____。
A) 3 B) 4 C) 11 D) 0 31. 以下选项中,值为1的表达式______。
A) 1-?0? B) 1-?\\0? C) ?1?-0 D) ?\\0?-?0?
32. 设变量x为float型且已赋值,则以下语句中能将x中的数值保留到小数
点后两位(四舍五入)是_____ 。
A) x=x*100+0.5/100.0 B) x=(x*100+0.5)/100.0 C) x=(int)(x*100+0.5)/100.0 D) x=(x/100+0.5)*100.0 33. 表达式3.6-5/2+1.2+5%2的值是______。
A) 4.3 B) 4.8 C) 3.3 D) 3.8
34. 已知int a[3][2]={3,2,1};则表达式\的值是___。
A) 0.166667 B) 1 C) 0 D) 错误的表达式 35. 逗号表达式\的值是____。
A) 15 B) 60 C) 30 D) 不确定 36. 已知int x; x=(1,2,3,4);变量x的值是____。
A) 1 B) 2 C) 3 D) 4
37. 如果int a=1,b=2,c=3,d=4;则条件表达式\的值是____。
A) 1 B) 2 C) 3 D) 4
38. 与条件表达式\中的表达式(n)等价的表达式是____。
A) (n==0) B) (n==1) C) (n!=0) D) (n!=1)
39. 已知 int x=1,y=1,z=1;表达式\的值是____。
A) 3 B) 4 C) 5 D) 表达式错误
40. 已知大写字母A的ASCII码是65,小写字母a的ASCII码是97。以下
不能将变量c中的大写字母转换为对应小写字母的语句是_____。 A) c=(c-'A')&+'a' B) c=c+32 C) c=c-'A'+'a' D) c=('A'+C)&-'a' 41. sizeof(double)是 _____。
A) 函数调用 B) double型表达式 C) int型表达式 D) 非法表达式
知识点3:输入输出
42. 下列程序的输出结果是_____。
void main()
{ double d=3.2; int x,y; x=1.2; y=(x+3.8)/5.0; printf(\ }
A) 3 B) 3.2 C) 0 D) 3.07
43. 下列程序执行后的输出结果是(小数点后只写一位)_____。
void main()
{ double d; float f; long l; int i; i=f=l=d=20/3;
printf(\ }
A) 6 6 6.0 6.0 B) 6 6 6.7 6.7 C) 6 6 6.0 6.7 D) 6 6 6.7 6.0 44. 执行语句 printf(\;屏幕显示____。
A) -1 B) 1 C) -ffff D) ffff 45. 若a为int型变量,则以下语句______。
a=-2L;
printf(\,A);
A) 赋值不合法 B) 输出值为-2 C) 输出为不确定值 D) 输出值为2 46. 若变量都已正确定义,则程序段______。
a=3;b=4;
a>b?printf(\=%d\=%d\,b++); A) 输出为:*** a=4 B) 输出为:*** a=3 C) 输出为:### b=4 D) 输出为:### b=5
47. 使用语句scanf(\输入变量x、y的值(□代表空格),
正确的输入是____。
A) 1.25,2.4 B) 1.25□2.4 C) x=1.25,y=2.4 D) x=1.25□y=2.4
48. 设有输入语句scanf(\如果运行程序,该如何输入
数据______。
A) a=6,b=7 B) 6 7 C) a=6 b=7 D) 6,7
49. 设int a=3,b=4;执行printf(\后的输出结果是_____
A) 3,4 B) 4,3 C) 4,4 D) 3,3 50. 有以下程序,以下叙述中正确的是_____。
main()
{ char a1='M', a2='m'; printf(\
A) 程序输出大写字母M B) 程序输出小写字母m C) 格式说明符不足,编译出错 D) 程序运行时产生出错信息 51. 有以下程序
main()
{ int m=12,n=34;
printf(\printf(\}
程序运行后的输出结果是______。
A) 12353514 B) 12353513 C) 12343514 D) 12343513 知识点4:逻辑量和逻辑表达式
52. 在C语言中,能代表逻辑值“真”的是______。
A) true B) 大于0的数 C) 非0整数 D) 非0的数 53. 设int x=0,y=1;则表达式(x&&--y)运算完毕后,y的值是_____。
A) 0 B) 1 C) 2 D) –1 54. 设int x=1,y=1;表达式(!x||y--)的值是_____。
A) 0 B) 1 C) 2 D) -1
55. 设int x=1,y=1;则表达式(x||--y)运算完毕后,y的值是_____。
A) 0 B) 1 C) 2 D) –1
56. 已知:char a;int b;float c;double d;执行语句\;\后,
变量c的数据类型是____ 。
A) int B) char C) float D) double
57. 设int a=0,b=5; 执行表达式++a||++b,a+b后,变量a,b和表达式的值分
别是_____。
A) 0,0,0 B) 0,5,5 C) 1,5,6 D) 1,6,7 58. 已知int x=1,y;执行下述语句后变量x的值是____。
y=++x>5&&++x<10;
A) 1 B) 2 C) 3 D) 4 59. 数学式子a≤x<b的正确的C语言表达式是____。
A) a<=x=a&&x=a||x=B) 60. 设有int i, j, k; 则表达式i=1,j=2,k=3, i&&j&k 的值为
A) 0 B) 1 C) 2 D) 3
61. 为判断字符变量c的值不是数字也不是字母时,应采用下述表达式____。
A) c<=48||c>=57&&c<=65&&c>=122
B) !(c<=48||c>=57&&c<=65||c>=90&&c<=97||c>=122)
C) c>=48&&c<=57||c>=65&&c<=90||c>=97&&c<=122 D) !(c>=48&&c<=57||c>=65&&c<=90||c>=97&&c<=122)
知识点5:位运算
62. 在位运算中,操作数每右移一位,其结果相当于____。
A) 操作数乘以2 B) 操作数除以2 C) 操作数除以16 D) 操作数乘以16
63. 已知二进制数a是00101101,如果想通过整型变量b与a做异或运算,
使变量a的高4位取反,低4位不变,则二进制数b的值应是____。 A) 11110000 B) 00001111 C) 11111111 D) 00000000 64. 已知 int a=15,执行语句a=a<<2以后,变量a的值是____。
A) 20 B) 40 C) 60 D) 80 知识点6:选择结构和if、switch 语句
65. 把以下四个表达式用作if语句的控制表达式时,选项_______与其它三个选
项含义不同。
A) k%2 B) k%2==1 C) (k%2)!=0 D) !k%2==1 66. 在嵌套使用if语句时,C语言规定else总是________。
A) 和它前面与其具有相同缩进位置的if配对 B) 和它前面与其最近的if配对
C) 和它前面与其最近的且不带else的if配对 D) 和它前面的第一个if配对 67. 下列叙述中正确的是________。
A) break语句只能用于switch语句 B) 在switch语句中必须使用default
C) break语句必须与switch语句中的case配对使用 D) 在switch语句中,不一定使用break语句
68. 下列条件语句中,功能与其他语句不同的是______。
A) if(A) printf(\B) if(a==0) printf(\C) if (a!=0) printf(\D) if(a==0) printf(\
69. 以下程序段中与语句k=a>b?(b>c?1:0):0;功能等价的是________。
A) if((a>B)&&(b>C)) k=1;else k=0; B) if((a>B)||(b>C)) k=1; else k=0; C) if(a<=B) k=0;else if(b<=C) k=1;
D) if(a>B) k=1;else if(b>C) k=1;else k=0;
70. 已知int i=1,j=0;执行下面语句后j的值是____。
while(i) switch(i)
{ case 1:i+=1;j++;break; case 2:i+=2;j++;break; case 3:i+=3;j++;break; default:i--;j++;break; }
A) 1 B) 2 C) 3 D) 死循环 知识点7:循环结构 while 、do~while和for语句 71. 下面的for语句______ 。
for(x=0,y=10;(y>0)&&(x<4);x++,y--);
A) 是无限循环 B) 循环次数不定 C) 循环执行4次 D) 循环执行3次 72. 在以下给出的表达式中,与while(E)中的(E)不等价的表达式是______。
A) (!E==0) B) (E>0‖E<0) C) (E==0) D) (E!=0) 73. 有以下程序段,则while循环执行的次数为_______。
int k=0;while(k=1) k++;
while循环执行的次数为_______。
A) 无限次 B) 有语法错,不能执行 C) 一次也不执行 D) 执行1次 74. 要求通过while循环不断读入字符,当读入字符′N′时结束循环。若变量
已正确定义,以下正确的程序段是________。 A) while((ch=getchar())!=′N′) printf(\B) while(ch=getchar()!=′N′) printf(\C) while(ch=getchar()==′N′) printf(\D) while((ch=getchar())==′N′) printf(\
75. 已知int i=1; 执行语句while (i++<4); 后,变量i的值为____。
A) 3 B) 4 C) 5 D) 6 76. 以下程序执行后的输出结果是______。
main() {int y=10;
while(y--);printf(\,y); }
A) y=0 B) y=-1 C) y=1 D) while构成无限循环
77. 若变量已正确定义,要求程序段完成求5!的计算,不能完成此操作的程1
相关推荐: