|
|
一、选择题(每题仅有1个正确选项选对得2分,错选、多选或漏选均不得分。本题共10小题,每小题2分,共20分)。 1、下面属于C语言标识符的是( )。 (A) 2ab (B) @f (C) ?b (D) _a12
2、一个C程序的执行是从( ) (A) 本程序的main()函数开始,到main函数结束. (B) 本程序文件的第一个函数开始,到本程序文件第一个函数结束. (C) 本程序文件的第一个函数开始,到本程序main函数结束. (D) 本程序的main()函数开始,到本程序文件的最后一个函数结束.
3、C语言中主函数的个数是( )。 (A) 2个 (B) 1个 (C) 任意个 (D) 10个
4、关于C语言变量,以下说法不正确的是( ) (A) 变量名由程序员定义,必须符合标识符的命名规则。 (B) 变量是程序运行过程中其值可以改变的量。 (C) 可以用C语言的关键字作为变量名。 (D) 变量命名时应尽量做到见名知意。
5、下列保留字中用于构成循环结构的是( ) (A) if (B) while (C) switch (D) default
6、以下if语句错误的是( ) (A)if (x<y) x++; y++; else x--; y--; (B)if (y) x+=y; (C)if (x>y); (D)if (x==5) scanf ("%d",&x); else x++;
7、Microsoft Visual C++ 6.0 中,C语言源程序的扩展名可以是:( ) (A) exe (B) obj (C) cpp (D) txt
8、对do...while语句错误的描述是:( ) (A)可构成多重循环结构 (B)循环次数不可能为0 (C)先执行后判断 (D)循环次数可能为0
9、数组名作为实参传递给形参时,数组名被处理为( )。 A 该数组的长度 B 该数组的元素个数 C 该数组的首地址 D 该数组中各元素的值
10、C语言中规定,if语句的嵌套结构中,else总是( )配对。 (A)与最近的if (B)与第一个if (C)与按缩进位置相同的if (D)与最近的且尚未配对的if
二、填空题(请将你认为的正确答案填入答题纸,每空2分,共20分)。 1、C语言标识符由字母、下划线或数字组成。命名标识符必须以(1)或(2)开头,字母严格区分大小写,不能使用C语言的关键字作为标识符。(两空顺序可以互换)
2、C语言中为了简化程序,提高程序的编译效率,在赋值运算符前面加上其他运算符号构成复合运算符。例如:x=x+5 用复合运算符可以写成(1)。
3、有如下语句 int a=8; int *p; p=&a; 则*p的值是(1)。
4、已知字符A的ACSII码值为65,以下语句的输出结果是(1)。 char ch='B'; printf("%d\n",ch);
5、若定义:int a=5,b=2,c=1; 则表达式 a>c || b= =c 的值是(1);表达式 b>c && b= =c 的值是(2)。
6、在循环语句中,continue和break语句的区别是:(1)语句提前结束本次循环,进行下一次循环的判断;而(2)语句跳出循环结构,结束循环。
7、有如下语句:enum color {red, green, blue}; 则green的值是(1)。
三、写出程序运行结果 (本题共4小题,每小题5分,共计20分)。 1、程序1: #include<stdio.h> main() { int i=1; loop:printf("你好,中国!\n"); i++; if(i<=3) goto loop; }
2、程序2:以下程序,如果用户输入"A",那么程序输出结果是什么? #include<stdio.h> main() { char grade; printf("请输入成绩等级(A、B、C、D):"); scanf("%c",&grade); switch(grade) { case'A':printf("恭喜,你的成绩优秀!\n"); case'B':printf("成绩良好\n");
case'C':printf("成绩及格\n");break; case'D':printf("不及格,准备重修!\n");break; default:printf("输入错误!\n"); } }
3、程序3: #include <stdio.h> main() { int a[10],j,k=0; for (j=0; j<10; j++ ) a[j]=j; for (j=0; j<4 ; j++ ) k+=a[j]+j; printf("%d\n",k); }
4、程序4: #include <stdio.h> int func(int a,int b) { static int m=0,i=2; i+=m+1; m=i+a+b; return(m); } main() { int k=4,m=1,p; p=func(k,m); printf("%d,",p); p=func(k,m); printf("%d\n",p); }
四、程序填空题(填空完善程序,共4空,每空2.5分,共10分)。 1、下面的程序将找出100~150之间的不能被3整除的数并输出,要求一行输出10个数,请补充完善。 #include <stdio.h> main() { int m,j=0; for (m=100;m<=150;m++) { if((1)) continue; printf("%4d",m); j++; if((2)) printf("\n"); } }
2、下面的程序将输出一个二维整型数组,请补充完善。 #include <stdio.h> main() { int a[3][3]={ {1}, {0,1}, {0,0,1}}; for(int i=0;(1);i++) { for(int j=0;j<3;j++) printf("%3d", (2) ); printf("\n"); } }
五、编程题(请按要求编写程序,每题10分,共30分)
1、编写一个程序,实现:用户输入两个整数,然后程序把较大的输出。
0 n=1 2、有一个数列 a(n)= 1 n=2 a(n-1)+a(n+1) n>3
编写一个程序,求a(20)。
3、编写一个程序,实现由用户输入一个圆的半径值,程序自动计算输出它的周长和面积。如果用户输入的半径值小于0,则提示用户重新输入,直到输入的值满足要求为止。 |
|
答案: |
一、单项选择题 题号 1 2 3 4 5 6 7 8 9 10 答题 D A B C B A C C C D
二、填空题 1、(1)字母 (2) 下划线 2、(1)x+=5 3、(1)8 4、(1)66 5、(1)真(或非0) (2)假(或0) 6、(1)continue (2)break 7、(1)1
三、写出程序运行结果 1、 运行结果: 你好,中国! 你好,中国! 你好,中国!
2、 用户输入“A”,程序将输出: 恭喜,你的成绩优秀! 成绩良好 成绩及格
3、运行结果:12
4、运行结果:8,17
四、程序填空题 1、(1)m%3= =0 (2) j%10= =0 2、(1)i<3 (2) a[i][j]
五、编程题 1、 方法一: #include<stdio.h> main() { int a,b,max; printf("请输入两个整数:\n"); scanf("%d%d",&a,&b); max=a>b?a:b; printf("较大的数是:%d\n",max); }
方法二: #include<stdio.h> main() { int a,b; printf("请输入两个整数:\n"); scanf("%d%d",&a,&b); if(a>b) printf("较大的数是:%d\n",a); else printf("较大的数是:%d\n",b); }
2、 方法1: #include <stdio.h>
int seqa(int n) { int a1=1; int a2=2; int t; int an; if (n==1) an=1; else if(n==2) an=2; else { for (int i=3;i<=n;i++) { an=a1+a2; t=a1; a1=a2; a2+=t; } } return an; } main() { int n; int an; printf("请输入n:\n"); scanf("%d",&n); if (n<=0) printf("错误,请输入正整数。\n"); else { an=seqa(n); printf(a(%d)=%d\n",n,an); } }
方法2: int seqa2(int n) { int an; if (n==1) an=1; else if(n==2) an=2; else an=seqa2(n-1)+seqa2(n-2); return an; } main() { int n; int an; printf("请输入n:\n"); scanf("%d",&n); if (n<=0) printf("错误,请输入正整数。\n"); else { an=seqa(n); printf(a(%d)=%d\n",n,an); } }
3、 #include<stdio.h> #define PI 3.1415926 main() { double r,circle,area; printf("请输入圆的半径:"); scanf("%lf",&r); while(r<0) { printf("半径值不可以小于0,请重新输入:"); scanf("%lf",&r); } circle=2*PI*r; area=PI*r*r; printf("圆的周长等于%lf,面积等于%lf。\n",circle,area); } |
|