C语言程序设计----复习题
一、 填空
1. 一个C源程序中至少应包含一个 main 函数。
2. a是整型变量,则执行表达式a=25/3%3后a的值为。 2
3. C语言中的数组必须先 定义 ,然后使用。
4. 如果需要从被调用函数返回一个函数值,被调用函数必须包含 return 语句。
5. 一个C语言程序的执行起点是____ main函数(或主函数)_______。
6. 设int x=3,y=5; 则执行printf("%d\n",x&&y);后输出___1___。
7. 定出公式对应的C语言表达式_1.0/2*(x+sqrt(x+y)/(5*x))__。
8. 若函数调用语句为f(a,b,f(a+b,a-b,b));,则函数f的参数个数是___3____。
9. 设int a=2;,则执行a+=a*=15;后,变量a的值是___60____。
10. 设double y[4][5];,则数组y中元素的个数是__20_____。
11. 设int x=7,y=3; 则表达式x%y+x/y的值是____3____。
12. 设char s[ ]={"apple"};,则执行printf("%d\n",strlen(s));后输出的值是__5_ 。
13. 若有定义int a[3][5];则排列在数组中的第9个元素是( a[1][3] )。
14. strlen("How are you\n")的值是( 12 )。
15. C语言中字符串结束的标志是( '\0' )。
16. 写出一个名为s的单精度实型一维数组,长度是6,所有元素初值均为0,其数组定义语句是( float s[6]={0}; )。
17. strcmp("how","How")的值是( 32 或>0 )。
18. 若a=2.8+7%3*11%2/4,a的值是( 2.8 )
19. 若a= 5/2+5.0/2+7%6,a的值是( 5.5 )
20. 若a=12,a*=2+3 a的值是( 60 )
21. 若a=3,b=4,c=5,a+b>c&&b= =c 表达式的值是 ( 0 )
22. 设a=1,b=2,c=3,d=4,m=n=1,有表达式(m=a>b)&&(n=c>d),表达式后m,n的值是( m=0, n=1 )
23. 设int b=7;float a=2.5,c=4.7;求下面表达式的值是 ( 4.5 )
a+(int)(b/2*(int)(a+c)/2)%4
二、 判断题
1. 若定义的函数没有参数,则函数名后的圆括号可以省略。()
2. 函数的函数体可以是空语句()。
3. 只有main函数才能调用其他函数。()
4. return语句中表达式的类型必须与函数定义的类型一致。()
5. 函数的实参和形参可以是相同的名字。()
6. 函数调用中,形参与实参的类型和个数必须保持一致。()
7. 外部类型的变量只能定义一次,但可在不同地方声明多次。()
8. 外部类型的变量作用范围大,编程中应多用外部变量。()
9. 预处理命令行必须以#开头,且最后要用分号结尾。()
10. 宏命令的处理占用编译时间,而不占用运行时间。()
三、 选择题(单选)
1. 已知字符'a' 的ASCII码为 97 ,执行下列语句的输出是__D___。
printf ("%d, %c", 'b', 'b'+1 ) ;
(A) 98, b (B)语句不合法 (C) 98, 99 (D) 98, c
2. 有定义语句:int a=1,b=2,c=3,x;则以下选项中各程序段执行后,x的值不为3的是 C 。
(A) if(c<a)x=1;else if(b<a)x=1;else x=3;
(B) if(a<3)x=3;else if(a<2)x=2;else x=1;
(C) if(a<3)x=3;if(a<2)x=2 ;if(a<1)x=1;
(D) if(a<b)x=b;if(b<c)x=c;if(c<a)x=a;
3. 以下程序段的输出结果是____D____。
char ch[3][5]={“AAAA”,“BBB”,“CC”};
printf(“%s\n”,ch[2]);
(A) BBB (B) AAAA (C) BBBCC (D) CC
4. 下面程序的输出结果是____D______。
int main()
{
int i;
for (i=0;i<10;i++);
printf (“%d”,i);
return 0;
}
(A) 0 (B) 123456789 (C) 023456789 (D) 10
5. 表达式 x&&y 等价于__C__。
(A) x==0&&y==0 (B) x==1&&y==1
(C).x != 0&&y!=0 (D). x != 1&&y!=1
c语言库函数6. 下列语句中符合C语言语法的语句是___C____
(A) a=b+c+7=e+f; (B) gh=7+b++=a+7;
(C) a=c+d,++b,a=7; (D) a==b,c==d;
7. 以下符号中___A____可以作C语言的用户标识符
(A) Break (B) #define (C)double (D) float
8. 下列属于C语言合法的字符常数是___B____
(A) “\t” (B)’\n’ (C) ‘48’ (D) “\30”
9. 若已定义x和y为double类型,则表达式:x=1,y=x*5/2的值是 B (A)2 (B)2.5 (C)3 (D)1
10. 设int x=0,y=1;表达式(x--&&y--)执行后y的值为___A___。
(A)1 (B)0 (C)-1 (D)不确定
11. 一个算法应该具有“确定性”等五个特性,下面对另外4个特性的描述中错误的是(B)
A、有零个或多个输入 B、有零个或多个输出 C、有穷性 D、可行性
12. C语言中最简单的数据类型包括(B)
A、整型、实型、逻辑型 B、整型、实型、字符型
C、整型、字符型、逻辑型 D、整型、实型、逻辑型、字符型
13. 设a和b均为double型变量,且a=5.5、b=2.5,则表达式(int)a+b/b的值是(D)
A、 6.500000 B 、6 C、 5.500000 D、 6.000000
14. 若有说明:int a[3][4];则对a数组元素的非法引用是( D)。
A、a[0][2*1] B、a[1][3] C、a[4-2][0] D、a[0][4]
15. 程序char c[5]={‘a’,’b’,’\0’,’c’c,’\0’}; printf(“%s”,c);}的运行结果是( D )。
A、'a''b' B、ab0 C、ab c D、ab
16. 判断字符串a是否大于b,应当使用( D)。
A、if (a>b) B、if(strcmp(a,b)) C、if (strcmp(b,a)>0) D、if (strcmp(a,b)>0)
17. 使用语句scanf(“a=%f,b=%d”,&a,&b);输入数据时,正确的数据输入是:(A)
A、a=2.2,b=3 B、a=2.2 b=3 C、2.2 3 D、2.2,3
18. 表示关系12<=x<=y的C语言表达式为:(B)
A、(12<=x)&(x<=y) B、(12<=x)&&(x<=y)
C、(12<=x)|(x<=y) D、(12<=x)||(x<=y)
19. 语句for(a=0,b=0;b!=100&&a<5;a++)scanf(“%d”,&b); scanf最多可执行次数为:(C)
A、4 B、6 C、5 D、1
20. 设有如下定义:struct jan{int a;float b;}c2,*p;若有p=&c2;则对c2中的成员a的正确引用是:
(B)
A、(*p).c2.a B、(*p).a C、p->c2.a D、p.c2.a
21. 一个C语言程序是由( C ) 组成的。
A.主程序 B.子程序 C.函数 D.过程
22. 2.转换说明符%x的输出形式是( C )。
A.十进制 B.八进制 C.十六进制 D.二进制
23. 若a、b均为int型变量,且a=100,则关于循环语for(b=100;a!=b;++a,++b)printf (“------------”);的正确说法是(C)。
A.循环体只执行一次 B.死循环
C.循环体一次也不执行 D.输出-----------
24. 若x、y、z均为int 型变量,则执行下列语句后的z值为 ( A )。 x=1; y=2; z=3; z=(x>y)
?z :y ; z = (z<y)?z:x;
A.1 B.4 C.2 D.3
25. 下面标识符中,合法的用户标识符为( D )。
A.P#Ad B.12a C.char D._int
26. ‘A’ + 3 的结果是( B )。
A.’A’ B.’D’的ASCⅡ码 C.65 D.3
27. 语句char str[20];说明str是一个字符串,最多能表示 ( B ) 。
A.20个字符 B.19个字符 C.18个字符 D.21个字符
28. 将int 型变量n转换成float型变量的方法是 ( B )。
A.float n B.(float)n C.float(n) D.21个字符
29. 以下不正确的描述是 ( C )。
A. 使用while和do-while循环时,循环变量初始化的操作应在循环语句之前完成
B. while循环是先判断表达式后执行循环体语句
C. do-while和for循环均是先执行循环体语句,后判断表达式
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论