1、C语言自测题(四) 一、填空题 (1)C语言程序的注释可以出现在程序中的任何地方,它总是以 /* 符号作为开始标记,以 */ 符号作为结束标记。 (2)在C语言中,系统在给出逻辑运算结果时,以_ 1_代表逻辑值”真”,以 0 表示逻辑值”假”,在判断一个量是否为”真”时,以 0 代表”假”,以 非0 代表”真”。 (3)a=8,那么a*=a-=a+a的值是 64 。 (4)a=6, b=2, c=4,那么a+b>c&&b-c*2||a&&b&&!c的值是 1 。 (5)unsigned int字节数为 2 ,doubl
2、e字节数为 8 ,float字节数为 4 。 (6)在C语言的表达式运算中结合方向指的是什么:优先级相同的运算符的执行顺序。 (7)逗号是C语言的运算符吗? 是 。 (8)在C语言中的预处理命令都以 # 开头。 (9)结构化程序设计规定的三种基本结构是 顺序 结构、 选择 结构和 循环 结构。 二、选择题 1、设整型变量a,b,c均为2,表达式:a+++b+++c++的结果是(6 )。 A) 6 B) 9 C) 8 D) 5 2、设有程序段 int k=15; while (k=0) k=k-1;
3、 则下面描述中正确的是( C )。 A) while循环执行10次 B) 无限循环 C) 循环体语句一次也不执行 D) 循环体语句执行一次 3、若定义了char x; 则将x强制转换成单精度类型应该写成( A )。 A) (float)x B) x(float) C) float (x) D) (x)float 4、在C语言库函数中,可以输出float型变量x值的函数是( D )。 A) getchar B) scanf C) putchar D) printf 5、选择运行结果 #include "stdi
4、o.h" main( ) { char ch; ch=getchar( ); switch(ch) { case 65: printf ("%c", 'A'); break; case 66: printf ("%c", 'B'); default : printf ("%s\n", "other");break; } } 当从键盘输入字母B时输出结果为( A )。 A) Bother B) ABother C) Aother D) 'A' 三、读
5、程序写出运行结果 (1)main( ) 运行结果:8 5 2 {int y=9; for(;y>0;y――) if(y%3= =0) printf(“%d”,――y);} (2)main( ) 运行结果:4018 { char a[ ]="5129", *p; int s=0; for (p=a; *p!='\0'; p++) s=10*
6、s+*p-'1'; printf ("\n%d",s); } (3)main ( ) 运行结果:-1 { int a=-5, b=, c=; if (a
7、nt a[2] [3]= {2, 0, 0, 2, 4, 23}; int s=0, i, j; for (i=1; i<2; i++) for (j=0; j<3; j++) s+=a[i][j]; printf ("%d", s); } (5)main( ) 运行结果:a=8 { void fu( ); a=1 fu ( );
8、 fu( ); } void fu( ) { static int a=; printf ("a=%d\n", !a? 1:8) ++a; } 四、程序填空 (1)输出100至200之间所有能被7或9整除的自然数。 #include "stdio.h" main ( ) { int n, i=0; printf ("\n"); for ( n=100;n<=200;n++ )
9、 { if (n%7!=0&&n%9!=0) continue ; if (i++%5= =0) printf ("\n"); printf ("%8d",n); } } (2)对候选人得票的统计,设3个候选人,每次输入一个得票的候选人的名字,要求 最后输出各人得票结果。程序如下: #include "stdio.h" struct person { char name [20]; int
10、 count; } leader [3]={"zhu", 0, "qin", 0, "liu",0}; main ( ) { int i,j; char leader_name[20]; for (i=1;i<=100;i++) { scanf ("%s",leader_name); for (j=0; j<3; j++) if (strcmp (leader_name, leader [ j ].name)= =0) leader[j]
11、count++; } printf ("\n"); for (i=0; i<3; i++) printf ("\n%6s:%d\n", leader[i].name, leader[i]. count); } (3)下面程序的功能是输出数组s中最大元素的下标 main( ) {int k,p; int s[ ]={1,-9,7,2,-10,3}; for(p=0,k=p;p<6;p++)
12、 if(s[p]>s[k])
k=p ;
printf(“%d\n”,k);}
五、编写程序
1、将10个人的成绩输入计算机后按逆序显示。
#define N 10
main( )
{ int i;float score[N];
for (i=0; i
13、int cube (int x) /* 函数定义 */ { return (x * x * x); } main( ) { int f, a; printf("\nEnter an integer number:"); scanf("%d", &a); f = cube (a); printf("%d * %d * %d = %d\n", a, a, a, f); } 3、输入a、b两个整数,使用指针变量按大小顺序输出这两个整数。 main( ) { int a,b,*p1,*p2,*p; p1=&a;p
14、2=&b; scanf(″%d%d″,a,b); if(*p1<*p2) { p=p1; p1=p2; p2=p;} printf(″a=%d,b=%d\n″,a,b); printf(″max=%d,min=%d\n″,*p1,*p2); } 4、定义一个学生结构体,学生的信息有学号(字符型)、姓名(字符型)、性别(整型)、年龄(整型)、住址(字符型)、成绩((单精度型)。 struct student { char num[8]; char name[30]; char sex; int age; char addr[60]; int score[6]; }; 5






