1、三 一.单项选择题 1. 设int x=1,y=1;表达式〔!x++ || y--〕的值是_________ A.0 B. 1 C. 2 D.-1 2.main( ) { int n; ( n=6*4,n+6),n*2; printf(“n=%d\n〞,n); } 此程序的输出结果是______________. A.30 B. 24 C. 60 D. 48 3.假设有如下定义,那么__________是对数组元素的正确的引用。 int a[10] , *
2、p ; p=a ; p=a ; p=a ; p=a ; A. *&a[10] B. a[11] C. *(p+10) D. *p 4.设整型变量n的值为2,执行语句“n+=n-=n*n;〞后,n的值是__________ A. 0 B. 4 C. - 4 D. 2 5.以下不能正确定义二维数组的语句是___________ A . int a[2][2]={{1},{2}}; B. int a[][2]={1,2,3,4}; C. int a[2][2]
3、{{1},2,3}; D. int a[2][]={{1,2},{3,4}}; 6. 程序段 的功能是将变量 u 、s中的最大值赋给变量t 。 A. if(u>s) t=u;t=s; B. t=u; if(t ) t=s; C. if(u>s) t=s;else t=u; D . t=s; if(u ) t=u; 7.以下程序段的输出结果是 。 第 6 页 void main() { int k; for (k=1;k<5;k++〉 { if(k%2!=0)
4、 printf("#"); else printf(“*〞) ; } A. #*#* B . *#*# C. ## D. 以上都不对 8.设变量定义为 int a[3]={1,4,7},*p=&a[2], 那么*p的值是 〔35〕 。 A. &a[2] B. 4 C. 7 D. 1 9.能正确表示a与b同时为正或同时为负的逻辑表达式是_________。 A.a>=0||b>=0〕&&(a<0 ||b<0) B.(a>=0 && b>=0)&&(a<0 && b<0) C.(a+
5、b>0) &&(a+b<=0) D. a*b>0 10.C语言中,合法的字符型常数是_________。 A.‘A’ B.“A〞 C. 65 D. A 11.设有数组定义:char array[]=〞China〞; 那么数组所占的空间是________。 A.4个字节 B.5个字节 C.6个字节 D.7个字节 12.假设变量c为char类型,能正确判断出c为小写字母的表达式是_______。 A.’a’<=c<=’z’ B. (c>=’a’) || (c<=’z
6、’) C.(‘a’<=c) and (‘z’>=c) D. (c>=’a’) && (c<=’z’) 13.设有定义:long x=-123456L; 那么以下能够正确输出变量x值的语句是_______。 A.printf(“x=%d\n〞,x) B.printf(“x=%ld\n〞,x) C.printf(“x=%8dl\n〞,x) D.printf(“x=%LD\n〞,x); 14.以下关于指针定义的描述,___________是错误的。 A.指针是一种变量,该变量用来存放某个变量的地址值的。 B.指针变量的类型与它所指向
7、的变量类型一致。 C.指针变量的命名规那么与标识符一样。 D.在定义指针时,标识符前的“*〞号表示后面的指针变量所指向的内容。 15.:int x; int y[10]; 以下______是合法的。 A.&x B.&(x+3) C.&5 D .&y 16.指出下面正确的输入语句__________。 A. scanf(“a=b=%d〞,&a,&b) ; B. scanf(“%d,%d〞,&a,&b) ; C. scanf(“%c〞,c) ; D. scanf(“% f%d\n〞,&f)
8、 ; 17.C语言中以追加方式翻开一个文件应选择_______________参数。 A.“r〞 B.“w〞 C.“rb〞 D.“a〞 18.Break语句的正确的用法是( )。 A. 无论在任何情况下,都中断程序的执行,退出到系统下一层。 B. 在多重循环中,只能退出最靠近的那一层循环语句。 C. 跳出多重循环。 D. 只能修改控制变量。 19. 为表示关系x≥y≥z,应使用C语言表达式 A.〔x>=y〕&&(y>=z) B. (x>=y) AND (y>=z)
9、C.(x>=y>=z) D. (x>=z)&(y>=z) 20.以下可以作为C语言合法整数的是________。 A.1010B B. 0368 C.0Xffa D. x2a2 21.在函数中默认存储类型说明符的变量应该是________存储类型。 A.内部静态 B. 外部 C.自动 D. 存放器 二.判断题 1. C 语言源程序文件通过了编译、连接之后 , 生成一个后缀为 .EXE 的文件。 ( ) 2. 在 C 程序中 , 函数既可以嵌套定义 , 也可以嵌套
10、调用。〔 〕 3. 在 C 程序中, APH 与 aph 代表不同的变量。〔 〕 4. 表达式 0195 是一个八进制整数。〔 〕 5. 表达式 _ya是不合法的C语言标识符。( ) 6. C程序总是从main( ) 函数的第一条语句开场执行的。 〔 〕 7. A-=7等价于a=a-7。 〔 〕 8. 利用fclose函数关闭已翻开的文件。〔 〕 9. 数组名可以作为参数进展传递。〔 〕 10. 执行printf("%x",12345);, 输出 12345 。〔
11、 〕 三、填空 1.C语言的预处理语句以__________开头。 2.表达式7+8>2 && 25 %5的结果是_______________________。 3.以下程序段是从键盘输入的字符中统计数字字符的个数,用换行符完毕循环。 int n=0, ch; ch=getchar( ); while( __________________ ) { if ( ________________ ) n++; c=getchar( ); } 4.C语言中putchar(c ) 函数的功能是_______
12、 5.int *p 的含义是___________________________________________。 6.定义fp为文件型指针变量的定义方法为_______________________。 7.数组 int a[3][4];共定义了____________个数组元素。 四、读出程序。 1. 改正以下程序中不正确的语句。 main() { int a=8 , b=1; a=a+b; b=a*b; printf("%d, %d",a,b); } 2.写出以下程序的运行结果。 fun(i
13、nt a, int b) { if(a>b) return (a); Else return (b); } main() { int x=3,y=8,z=6,r; r=fun(fun(x,y),2*z); printf(“%d\n〞,r); } 3. 改正以下程序中不正确的语句。 main() { int n ; float s=1.0; for(n=10;n>1;n- -) s=s+1/n; printf(“%\n〞,s); } 4. 写出以下程序的运行结果。
14、main() { int n; For(n=3; n<=10; n++) { if(n%5= =0) break; Printf(“%d〞,n); } } 5.写出以下程序的运行结果。 #include “stdio.h〞 main() { int a[]={1,2,3,-4,5}; int m,n,*p; p=&a[0]; p=&a[0]; m=*(p+2); n=*(p+4); printf(“%d %d %d 〞,*p,m,n);} 五.编程序 1.编程计算以
15、下表达式:s=1!+2!+3!+4!+……+10! 2.从键盘上输入a与n的值,计算sum=a+aa+aaa+aaaa+……(共n项)的与。例a=2, n=4, 那么sum=2+22+222+2222。 3.求3X3矩阵的主对角线元素之与。 4.从键盘上输入10个数存入一维数组中,求这10数中的最大值与最小值并输出。 5.从键盘上输入假设干个字符存入文件中,遇到回车键输入完毕。(用“\n〞表示 答案一.单项选择题 1 B 2B 3D 4C 5D 6C 7A 8C 9D 10A 11C 12D 13B 14D 15A 16B 17D 18B 19
16、A 20C 21C 二.判断题 1√ 2Ⅹ 3√ 4Ⅹ 5Ⅹ 6√ 7√ 8√ 9√ 10Ⅹ 三、填空 1 #号 2 0 3 ch!=’\n’ ch>=’0’ && ch<=’9’ 4 将变量c中的字符显示到屏幕上。 5 指针变量p为整型 6 FILE *fp 7 12 四、读出程序。 1 printf("%d, %d",&a,&b); 2 12 4. 3 4 5 1 3 5 五.编程序 1. #include "stdio.h" main() { long s=0,
17、t=1; int i; for(i=1;i<=10;i++) { t=t*i; s=s+t; printf("%ld",s); } 2 #include "stdio.h" main() { int a,n count=1,sn=0,tn=0; scanf("%d %d",&a,&n); while(count<=n) { tn=tn+a; sn=sn+tn; a=a*10; ++count; } printf("%d",sn); } 3. #include "stdio.h" m
18、ain() { int a[3][3],i,j,s=0; for(i=0;i<3;i++) for(j=0;j<3;j++) scanf("%d",&a[i][j]); for(i=0;i<3;i++) for(j=0;j<3;j++) if(i==j) s=s+a[i][j]; printf("%d",s); } 4. #include "stdio.h" main() { int a[10],max,min; for(i=0;i<10;i++) scanf("%d",&a[i
19、]);
max=a[0];
for(i=1;i<10;i++)
if(a[i]>max)
max=a[i];
min=a[0];
for(i=1;i<10;i++)
if(a[i]






