1、 《C语言程序设计》模拟卷 题号 一 二 三 四 总分 得分 评卷人 一、选择题: 1.一个C语言程序的基本组成单位是______。 A)主程序 B)子程序 C)函数 D)过程 2.C语言中字符型(char)数据在内存中的形式存储是______。 A) 原码 B) 补码 C)反码 D) ASCII码 3.执行以下程序段后,c3的值是______。 int c1=1,c2=2,c3; c3=c1/c2; A) 0 B) 1/2
2、 C) 0.5 D) 1 4.执行以下语句的结果为______。 y=10; x=y++; A)x=10, y=10 B)x=11, y=11 C)x=10, y=11 D)x=11, y=10 5.下列常数中不能作为C的常量的是______。 A) 0xA5 B) 2.5e-2 C) 3e2 D) 2e32.6 6.C语言中整数-8在内存中的存储形式是______。 A) 1111 1111 1111 1000 B) 1000 0000 0
3、000 1000 C) 0000 0000 0000 1000 D) 1111 1111 1111 0111 7.已知 int i,a;执行语句"i=(a=2*3,a*5),a+6;"后,变量i的值是______。 A)6 B)12 C)30 D)36 8.执行以下程序段后,a,b,c的值分别是______。 int a,b=100,c,x=10,y=9; a=(--x==y++)?--x:++y; if(x<9)b=x++; c=y; A)9,9,9 B)8,8,10
4、C)9,10,9 D)1,11,10 9.下列程序段______。 x=3; do { y = x--; if ( !y ) { printf("x"); continue; } printf("#"); } while(1<=x&&x<=2); A)输出 ### B)输出 ##x C)是死循环 D)有语法错 10.一个C语言的源程序中______。 A)必须有一个主函数 B)可以有多个主函数 C)必须有主函数和其他函数 D)可以没有主函数 11.C语言规定,调用一个
5、函数时,实参变量和形参变量之间的数据传递方式是_____。 A)地址传递 B)值传递 C)由实参传给形参,并由形参传回来给实参 D)由用户指定传递方式 12.以下程序的输出结果是____。 main() { int i,x[3][3]={1,2,3,4,5,6,7,8,9}; for(i=0;i<3;i++) printf("%d,",x[i][2-i]); } A) 1,5,9, B) 1,4,7, C) 3,5,7, D) 3,6,9, 13.已知:int *
6、p, a; 则语句"p=&a;"中的运算符"&"的含义是_____。 A)位与运算 B)逻辑与运算 C)取指针内容 D)取变量地址 14.说明语句"int (*p)( );"的含义是_____。 A)p是一个指向一维数组的指针变量 B)p是指针变量,指向一个整型数据 C)p是一个指向函数的指针,该函数的返回值是一个整型 D)以上都不对 15.变量的指针,其含义是指该变量的( ) A)值 B)地址 C)名 D)一个标志 二、填空题: 1.表达式10+16%3的值为_____
7、 2.写出满足下列条件的表达式:a和b都不小于c_____________________。 3.若有定义:int a[3][4]={{1,2},{0},{4,6,8,10}};则初始化后,a[1][2]得到的初值为_____。 4.下面函数的功能是求1到n的和请把程序补充完整。 long sum( int n) { int i; __________ for(i=1;i<=n;i++) _______________ return s; } 三、程序阅读题,写出程序的输出结果: 1.#include “stdio.h” main(
8、) {int i, j; i=j=2; if(i==1) if(i==2) printf(“%d”,i=i+j); else printf(“%d”,i=i-j); printf(“%d”,i); } ___________________________________。 2. main() {int i=3 while(i<10)) {if(i<6) {i+=2; continue; } e
9、lse printf(“%d”,++i); } } ___________________________________。 3.#include “stdio.h” #define X 5 #define Y X+1 #define Z Y*X/2 main( ) {int a; a=Y; printf(“%d %d\n”,Z,--a); } ___________________________________。 四、编程题: 1.计算正整数1到n中的奇数之和及偶数
10、之和。 2.用switch语句编写程序,实现以下功能:从键盘输入数字1、2、3、4。分别显示excellent,good,pass,fail.输入其它键时显示error。 3.编程求一个3×3矩阵对角线元素之和。 参考答案: 1、 main() { int n,i; long s1,s2; printf("please input n\n"); scanf("%d",&n); for(i=1,s1=0,s2=0;i<=n;i++) if(i%2==0) s1=s1+i; else s2=s2+i; printf("oushu
11、he shi %ld\n",s1); printf("jishu he shi %ld\n",s2); } 2、(总分8分)) main() { int x; printf("please input a number\n"); scanf("%d",&x); switch (x) { case 1: printf("excellent\n");break; case 2: printf("good\n");break; case 3: printf("pass\n");break
12、 case 4: printf("fail\n");break; default : printf("error\n"); } } 3、(总分8分) main() {int a[3][3]; int i,j; long s; printf("please input 9 number\n"); for(i=0;i<3;i++) for(j=0;j<3;j++) scanf("%d",&a[i][j]); printf("the array a is \n"); for(i=0,s=0;i<3;i++) {for(j=0;j<3;j++) {printf("%4d",a[i][j]); if(i==j||i+j==2)s=s+a[i][j]; } printf("\n"); } printf("s=%3d",s); }






