第1套 C语言程序设计笔试样题及参考答案 ................................................ 2 第2套 C语言程序设计笔试样题及参考答案 ................................................ 9 第3套 C语言程序设计笔试样题及参考答案 .............................................. 17 第4套 C语言程序设计笔试题及参考答案 .................................................. 22 第5套 C语言程序设计笔试样题及参考答案 .............................................. 29 2008年1月安徽省计算机水平考试二级C语言试题 .................................. 37 2008年6月安徽省计算机水平考试二级C语言试题 .................................. 42 2010年安徽省计算机水平考试二级C语言试题 .......................................... 48 2011上半年安徽省计算机水平考试二级C语言试题................................... 52 2011年下半年全国高等学校(安徽考区)计算机水平考试试卷 ..................... 56 2012年上半年全国高等学校(安徽考区)计算机水平考试试卷 .................... 62 2008年1月安徽省计算机水平考试二级C语言试题参考答案 .................. 68 2008年6月安徽省计算机水平考试二级C语言试题参考答案 .................. 69 2010年安徽省计算机水平考试二级C语言试题参考答案 .......................... 69 2011年上半年安徽省计算机水平考试二级C语言试题参考答案 .............. 71 2011年下半年安徽省计算机水平考试二级C语言试题参考答案 .............. 72 2012年上半年安徽省计算机水平考试二级C语言试题参考答案 .............. 73
1
第1套 C语言程序设计笔试样题及参考答案
一、单项选择题(每题1分,共40分)
1. 某微型计算机的型号规格标有PentiumIII600字样,其中PentiumIII是指 1 。 A.厂家名称 B.机器名称 C.CPU型号 D.显示器名称 2. 目前微型机上普通使用的光驱及光盘,它采用的是 2 。
A.超导技术 B. 激光技术 C.集成电路技术 D.调频技术 3. 在下列一组数中,最小数为 3 。
A.(11011101)2 B. (125)10 C. (A7)16 D. (157)8 4. Windows XP中,“回收站”是 4 。
A.内存的部分空间 B.硬盘中的部分空间 C.软盘中的部分空间 D.高速缓存中的部分空间 5. 在“我的电脑”窗口中改变一个文件或文件夹的名称,可以采用的方法是:先选取该文件夹或文件,再用鼠标左键 5 。
A.单击该文件夹或文件的名称 B.单击该文件夹或文件的图标 C.双击该文件夹或文件的名称 D.双击该文件夹或文件的图标 6. Windows X的文件夹组织结构是一种 6 。
A.表格结构 B. 树形结构 C.网状结构 D.线性结构 7. 以太网(Ethernet)的拓扑结构是 7 。
A.环形 B. 星形 C.总线形 D.树形 8. 在因特网(Internet)中,电子公告板简称为 8 。
A.E-mail B. BBS C.WWW D.FTP 9. 在多媒体个人计算机中,声卡的作用是 9 。
A.用来播放声音 B.连接主机和声音播放设备
C.用来录入声音 D.连接主机和声音播放与录入设备 10.“CIH”是一种计算机病毒,它主要是破坏 10 ,导致计算机系统瘫痪。 A.CPU B.软盘 C.BOOT(程序) D.BIOS
11. 设x,y,z和k都是int型变量,则执行表达式:x=(y=4,z=16,k=32)后,x的值为 11 。 A.4 B. 16 C.32 D.52 12. 设有如下的变量定义: int i=8,k,a,b; unsigned long w=5; double x=1.42,y=5.2;
则以下符合C语言表达式的是 12 。 A. a+=a-=(b=4)*(a=3) B. x%(-3) C. a=a*3=2 D. y=float(i)
13. 假定有以下变量定义:int k=7,x=12;则能使值为3的表达式是 13 。 A. x%=(k%=5) B. x%=(k-4%5) C. x%=k-k%5 D. (x%=k)-(k%=5) 14. 以下叙述正确的是 14 。
A.输入量可以是一个实型常量,例如:scanf(\"%f\
B.只有格式控制,没有输入项,也能正确输入数据到内存,例如:scanf(\"a=%d,b=%df\"); C.当输入实型数据时,格式控制部分可以规定小数点后几位,例如:scanf(\"%4.2f\ D.当输入数据时,必须指明变量地址,例如:scanf(\"%f\
15. 设x和y均为int型变量,则语句:x+=y;y=x-y;x-=y;的功能是 15 。
A.把x和y按从大到小排列 B.把x和y按从小到大排列 C.无确定结果 D.交换x和y中的值 16. 以下程序的输出结果是 16 。 main()
{int a=12,b=12;
printf(\"%d %d\\n\
2
A.10 10 B.12 12 C.11 10 D.11 13 17. 以下程序运行后,输出结果是 17 。 main()
{char *s=\"abcd\"; printf(\"%ld\\n\}
A.cde B.字符c的ASCⅡ码值 C.字符c的地址 D.出错 18. 以下程序的输出结果是 18 。
main(){int m=5;
if(m++>5) printf(\"%d\\n\else printf(\"%d\\n\
A.7 B.6 C.5 D.4 19. 当a=1,b=3,c=5,d=4时,执行下面一段程序后,x的值为 19 。 if(aelse if(a 20. 在执行以下程序时,如果从键盘输入:ABCdef<回车>,则输出为 20 。 #include main() {char ch; while((ch=getchar())!='\\n') { if(ch>='A'&&ch<='Z')ch=ch+32; else if(ch>='a'&&ch<='z‘) ch=ch-32; printf(\"%c\ printf(\"\\n\");} A.ABCdef B.abcDEF C.abc 21. 下面能正确进行字符串赋值操作的语句是 21 。 A.char s[5]={\"\\ABCDE\ B.char s[5]={'A','B','C','D','E'}; C.char *s;s=\"ABCDEF\"; D.char *s;scanf(\"%s\22. 当执行以下程序段时,描述正确的选项是 22 。 x=-1; do{x=x*x;}while(!x); A.循环体将执行一次 B.循环体将执行两次 C.循环体将执行无限次 D.系统提示有语法错误 23. 执行以下程序后,输出结果是 23 。 main(){ int y=10; do{y--;}while(--y); printf(\"%d\\n\ A.-1 B.1 C.8 D.0 24. 在下列选项中,没有构成死循环的程序段是 24 。 A. int i=100; B.for(;;); while(1) {i=i&100+1; if(i>100)break;} C. int k=1000; D. int s=36; do{++k;}while(k<=1000); while(s);--s; 25. 执行语句:for(i=1;i++<4;);后,变量i的值是 25 。 A.3 B.4 C.5 D.不定 26. 以下程序运行后,如果从键盘输入ABCDE<回车>,则输出结果为 26 。#include 3 D.DEF {int num=0; while(*(str+num)!='\\0')num++; return(num);} main() { char str[10],*p=str; gets(p); printf(\"%d\\n\} A.8 B.7 C.6 D.5 27. 运行以下程序后,如果从键盘输入china<回车>,则输出结果为 26 。 #include {int v1=0,v2=0; char ch; while((ch=getchar())!='\\n') switch(ch) { case 'a': case 'h': default: v1++; case '0': v2++; } printf(\"%d,%d\\n\ A.2,0 B.5,0 C.5,5 D.2,5 28. 若以下程序所生成的可执行文件名为file1.exe,当打入以下命令执行该程序时,程序的输出结果 是 28 。 FILE1 CHINA BEIJING SHANGHAI main(int argc,char *argv[]) { while(argc-->0){ ++argv; printf(\"%s\ A.CHINA BEIJING SHANGHAI B.FILE1 CHINA BEIJING C.C B S D.F C B 29. 下面程序的运行结果是 29 。 main() { char ch[7]={\"65ab21\ int i,s=0; for(i=0;ch[i]>='0'&&ch[i]<='9';i+=2) s=10*s+ch[i]-'0'; printf(\"%d\\n\ A.12ba56 B.6521 C.6 D.62 30. 运行下面的程序,如果从键盘输入:ab<回车>c<回车>def<回车>则输出结果为 30 。 #include { char c[N]; int i=0; for(;i 4 31. 以下程序运行后,输出结果是 31 。 #include A.8 B.7 C.6 D.5 32. 以下程序运行后输出结果是 32 。 #include A.8,15 B.8,16 C.8,17 D.8,8 33. 以下程序运行后,输出结果是 33 。 #include { int a=1,b=2; printf(\"%4.1f\\n\ A.49.5 B.9.5 C.22.0 D.45.0 34. 以下程序运行后,输出结果是 34 。 main() {static char a[]=\"ABCDEFGH\ char *p1,*p2; int k; p1=a;p2=b; for(k=0;k<=7;k++) if(*(p1+k)==*(p2+k)) printf(\"%c\ printf(\"\\n\"); } A.ABCDEFG B.CDG C.abcdefgh D.abcCDefGh 35. 以下程序执行后,a的值是 35 。 main() {int a,k=4,m=6,*p1=&k,*p2=&m; a=p1==&m; printf(\"%d\\n\ A.4 B.1 C.0 D.运行时出错,a无定值 36. 以下程序运行后,输出结果是 36 。 int d=1; fun(int p){int d=5; d+=p++; printf(\"%d\} main() {int a=3; fun(a); d+=a++; printf(\"%d\ A.84 B.99 C.95 D.44 37. 以下程序运行后,输出结果是 36 。 main() {char ch[2][5]={\"693\ int i,k,j,s=0; for(i=0;i<2;i++) p[i]=ch[i]; for(i=0;i<2;i++) for(j=0;p[i][j]>'0'&&p[i][j]<='9';j+=2) s=10*s+p[i][j]-'0'; 5 printf(\"%d\\n\} A.6385 B.22 C.33 D.693825 38. 若有以下程序段,输出结果为 38 。 int **pp,*p,a=10; p=&a;pp=&p; printf(\"%d\ A.10 B.p的地址 C.a的地址 D.pp的地址 39. 若建立以下的链表结构,指针p,q 分别指向图中所示结点,则不能将q所指的结点插入到链表 末尾的一组语句为 39 。 Data next b NULL c a NULL p q A.q->next=NULL;p=p->next;p->next=q; B.p=p->next;q->next=p->next;p->next=q; C.p=p->next;q->next=p;p->next=q; D.p=(*p)·next;(*q) ·next=(*p) ·next;(*p) ·next=q; 40. 以读写方式打开一个已有的文件file1,下面有关fopen函数正确的调用方式为 40 。 A.FILE *fp;fp=fopen(\"file1\ B.FILE *fp;fp=fopen(\"file1\C.FILE *fp;fp=fopen(\"file1\ D.FILE *fp;fp=fopen(\"file1\二、填空题(每空2分,共20分) 1. 设有变量定义:int a=5,b=4;则表达式(--a>b++)?—a:b++的值为 (1) 。 2. 某C编译系统规定,int型数据占2个字节,则定义: struct node{ int x; long y; }z; 后,sizeof(z)= (2) 。 3. 设有变量定义:int a[10]={1,2,3,4,5,6,7};int *p=a;则表达式*++p的值为 (3) 。 23i4. 下列程序用于计算s1xxxx的近似值。 2!3!i#include printf(\"s=%f\\n\ 5. 下面程序用于将输入的三个数从小到大排序输出。 void main() { int a,b,c,x,y; scanf(\"%d%d%d\ if( (5) ) {x=a;y=b;} else{ x=b;y=a; } if( (6) ) x=c; else if(y>c) y=c; printf(\"%d,%d,%d\} 6 6. 以下程序将输入的一行字符串中的字母全部变成大写输出。 #include printf(\"\\n%s\\n\} 7. 程序运行后,输出4,16,256,。 test(){ (8) x=2; x=x*x; printf(\"%d,\main() {test(); test(); test();} 8. 函数trans()实现对给定的十进制整数d(d≥0),译成s(2≤s≤16)进制表示形式的字符串。char trans(unsigned int d,int s) {char digits[]=\"0123456789ABCDEF\ int i=16; if(s<2||s>16)return 0; buf[i]='\\0'; do { buf[--i]=digits[d%s]; ( (9) ;) }while( (10) ); printf(\"%s\main() {int s,d; scanf(\"%d%d\ printf(\"%4d=\ trans(d,s); printf(\"%d\\n\三、阅读下列程序,写出程序运行结果(每小题4分,共20分) [程序1] main() { int i, x; scanf(\"%d\ for(i=2; x%i; i++); printf(\"%d\\n\ 运行后,从键盘输入3,运行结果为: ; 从键盘输入4,运行结果为: 。 [程序2] main() {int i; for(i=1; i<6; i++) {if(i%2)printf(\"$\"); else continue; printf(\"#\"); } printf(\"&\\n\"); } 运行结果为: 。 [程序3] main() { int n[3],i,j,k; for(i=0;i<3;i++) n[i]=0; k=2; 7 for(i=0;i main() { long x; x=f(4); printf(\"%d\\n\} 运行结果为: 。 [程序5] #include do { if((i%m==0)&&(i%n==0)) { printf(\"%d\\n\ break; } i++; }while(i!=0); } 运行结果为: 。 四、编程题(共20分) 1.找出1~100之间的全部“同构数”。所谓“同构数”是指一个数,它出现在它的平方数的右端。如6的平方是36,6就是同构数。 (6分) 2.编程实现二维数组(n×n)的转置(即行列互换)。(7分) 3.按下述递归定义编写一个计算幂级数的递归函数。(7分) n01 xnn1n0x*x参考答案 一、单项选择题 1. C 2.B 3.D 4.B 5.A 6.B 7.C 8.B 9.D 10.D 11.C 12.A 13.D 14.D 15.D 16.D 17.C 18.B 19.B 20.B 21.C 22.A 23.D 24.C 25.C 26.D 27.C 28.A 29.C 30.C 31.D 32.C 33.B 34.B 35.C 36.A 37.A 38.A 39.C 40.B 二、填空题 1. (1)5 2.(2)8 3.(3)2 4.(4)t*x/i 5.(5)a>b (6)x 8 2. $#$#$#& 3. 4 4. 9 5. 35 1. main() {int i,x; for(i=1;i<=100;i++) {x=i*i; if((x%10==i)||(x%100==i))printf(\"%d\}} 2. #define N 5 main() {int a[N][N],t,i,j; for(i=0;i 第2套 C语言程序设计笔试样题及参考答案 一、单项选择题(每题1分,共40分) 1. 下列设备中只能作为输出设备的是 1 。 A.键盘 B.硬盘 C.打印机 D.内存 2. 下列叙述中错误的是 2 。 A.频繁开关计算机会导致计算机系统寿命的缩短 B.任何一个完整的计算机系统中,都必须有一个操作系统软件 C.高温会导致计算机系统的不稳定 D.磁场干扰不会导致计算机系统的不稳定 3. 打印当前屏幕内容应使用控制建是 3 。 A.PrtSc(Print Screen) B. PgDn C. Num_lock D. Pgdown 4. 二进制数11001010.11转换成十进制是 4 。 A.202.375 B. 202.125 C. 202.75 D. 202.625 5. 设一张软盘上已染有病毒,则能完全消除该软盘上病毒的措施是 5 。 A.删除该软盘上的所有文件 B.删除该软盘上的多有可执行文件 C.对软盘进行格式化 D.对软盘进行写保护 6. 通常所说的487是 6 。 A.8位机 B.16位机 C.32位机 D.64位机 7. DOS系统启动后,以下文件常驻内存的是 7 。 A.command.com B. io.sys C.sys.exe D.boot.com 8. Windows 2000中的“任务栏”上存放的是 8 。 A.系统正在运行的所有程序 B.系统中保存的所有程序 C.系统前台运行的程序 D.系统后台运行的程序 9 9. Windows 2000中的剪贴板是 9 。 A.硬盘上的一块区域 B.软盘上的一块区域 C.内存中的一块区域 D.高速缓存中的一块区域 10. 在Internet中,环球网的缩写是 10 。 A.BBS B.FTP C.WWW D.E-MAIL 11. 请选出下面可用作C语言用户标识符的一组 11 。 A.void B.a_b C.2ab D.a+b define _ab a2b ab aaa ab_ ab2 aa_bb 12. 设x为int型变量,则执行‖ x=8;x-=x-=x;‖语句后,x的值为 12 。 A.8 B.0 C.16 D.-8 13. 请选出合法的C语言赋值语句 13 。 A. a=a+b B. a?1:0 C. a=int(a+b); D. a++; 14. 执行以下程序片段的结果是 14 。 int x=321; do{ printf(\"%2d\}while(!x); A.打印出321 B.打印出32 C.打印出21 D.陷入死循环 15. 有以下程序段,请问执行后的输出结果为 15 。 double x,y; x=1,y=x+3/2; printf(\"%.1lf\ A.2.5 B.2.0 C.2 D.1 16. 有以下程序段,请问执行后的输出为 16 。 main() {int a=010,b=10,c=0x10; printf(\"%d ,%d,%d\} A.8,10,16 B.8,11,16 C.7,10,17 D.8,10,17 17. 合法的数组定义是 17 。 A.char a={ ' H ', ' e ', ' l ', ' l ', ' o '}; B. char a={\" H \ C. char a[]={ ' H ', ' e ', ' l ', ' l ', ' o '}; D. char a[5]=\" Hello \"; 18. 设a为int型变量,则不能正确表示数学关系|a|>10的表达式是 18 。 A.a>10||a<-10 B.a>10|a<-10 C.!(a>=-10&&a<=10) D.!(a<=10)||a<-10 19. 以下程序的输出结果是 19 。 #include {int a=2,b=5; printf(\"a=%%d,b=%%d\ } A.a=%2,b=%5 B.a=2,b=5 C.a=%%d,b=%%d D.a=%d,b=%d 20. 以下程序的输出结果是 20 。 #include { if(i%2) printf(\"*\"); else continue; printf(\"#\"); } printf(\"$\\n\"); } A.*#*#*#$ B.#*#*#*$ C.*#*#$ D.#*#*$ 10 21. 有以下程序段,请问执行后的输出结果是 21 。 char s[10]=\"abcdefg\p++; printf(\"%s\ A.abcdefg B.bcdefg C.cdefg D.编译不通过 22. 若有定义和语句: int **pp,*p,a=100,b=200; pp=&p; p=&b; printf(\"%d,%d\\n\则输出结果是 22 。 A.100,200 B.100,100 C.200,100 D.200,200 23. 有以下for循环语句: for(x=0,y=3,i=0;(y>3)&&(x<4);x++,y++)i++; 则执行上述语句后,i的值是 23 。 A.0 B.1 C.2 D.陷于死循环 24. 有以下程序,请问执行后的输出结果是 24 。 #include {char s[10]={'H','e','l','l','o'}; printf(\"%d\ A.8 B.7 C.6 D.5 25. 有以下程序,其for语句中循环体执行的次数是 25 。 #include #define NUM (M+1)*M/2 main() { int i,n=0; for(i=1;i<=NUM;i++) {n++; printf(\"%d\ printf(\"\\n\"); } A.5 B.6 C.8 D.9 26. 若有定义语句int a[10]={0,1,2,3,4,5,6,7,8,9},*p=a; 则不是对a数组元素正确引用的是 26 。 A.a[p-a] B.*(&a[i]) C.*p D.*(*(a+i)) 27. 若有以下程序段,执行后的输出结果是 26 。 Char *s1=\"BEIJING\printf(\"%d\A.8 B.7 C.15 D.9 28. 下面程序的输出是 28 。 main() { char *s=\"121\"; int k=0,a=0,b=0; do{ k++; if(k%2==0){a=a+s[k]-'0';continue;} b=b+s[k]-'0';a=a+s[k]-'0'; }while(s[k+1]); printf(\"k=%da=%db=%d\\n\ } A.k=3a=2b=3 B.k=3a=3b=2 C.k=2a=3b=2 D.k=2a=2b=3 29. 若有以下定义:float x;int a,b; 则正确的switch语句是 29 。 A. switch(x) B. switch(x) { case 1.0:printf(\"*\\n\"); { case 1,2:printf(\"*\\n\"); case 2.0:printf(\"**\\n\"); case 3:printf(\"**\\n\"); 11 } } C. switch(a+b) D. switch(a+b) { case 1: printf(\"*\\n\"); { case 1:printf(\"*\\n\"); case 1+2:printf(\"**\\n\"); case 2:printf(\"**\\n\"); } } 30. 有以下程序: #include { a.ch[0]=13; a.ch[1]=0; printf(\"%d\ } 执行上述程序后的输出结果是 30 。 A.13 B.14 C.208 D.209 31. 以下程序输出的结果是 31 。 #include { char w[][10]={\"ABCD\ for(k=1;k<3;k++) printf(\"%s\\n\ } A. ABCD B. ABCD FGH EFG KL IJ C. EFG D. FGH JK KL O 32. 若有以下的定义:int a[]={1,2,3,4,5,6,7,8,9,10},*p=a;则值为3的表达式是 32 。 A.p+=2,*(p++) B.p+=2,*++p C.p+=3,*p++ D.p+=2,++*p 33. 在以下一组运算符中,优先级最高的运算符是 33 。 A.<= B.= C. % D.&& 34. 以下程序的输出结果是 34 。 #include { char a,b; a='A';b='B'; sub3(&a,&b); putchar(a);putchar(b); a='A';b='B'; sub2(&a,b); putchar(a);putchar(b); a='A';b='B'; sub1(a,b); putchar(a);putchar(b); } A.BABBAB B.ABBBBA C.BABABA D.BAABBA 35. 设有如下定义: struct sk{int a;float b;}data,*p; 若有p=&data;则对data中a域的正确引用是 35 。 A.(*p).data.a B.(*p).a C. p->data.a D.p.data.a 36. 以下程序的输出结果是 36 。 #include 12 main() { int i=1,j=3; printf(\"%d,\ {int i=0; i+=j*2; printf(\"%d,%d,\ } printf(\"%d,%d\ } A.1,6,3,1,3 B.1,6,3,2,3 C.1,6,3,6,3 D.1,7,3,2,3 37. 以下程序的输出结果是 37 。 #include { int k=4,m=1,p; p=func(k,m); printf(\"%d,\ p=func(k,m); printf(\"%d\ } func(int a,int b) { static int m=0,i=2; i+=m+1; m=i+a+b; return(m);} A.8,17 B.8,16 C.8,20 D.8,8 38. 设有以下语句: struct st{int n;struct st *next;}; static struct st a[3]={5,&a[1],7,&a[2],9,'0'},*p; p=&a[0]; 则下列表达式的值为6的是 38 。 A.p++->n B.p->n++ C.(*p).n++ D.++p->n 39. 下面程序的运行结果是 39 。 #include fun(int **s,int p[2][3]) { **s=p[0][1]; } main() {int x[2][3]={2,4,6,8,10,12},*p; p=(int *)malloc(sizeof(int)); fun(&p,x); printf(\"%d\ A.10 B.4 C.6 D.8 40. 函数调用语句fseek(fp,10,1)的含义是 40 。 A.将文件指针移动到距离文件头10个字节处 B.将文件指针移动到距离文件尾10个字节处 C.将文件指针从当前位置后移10个字节 D.将文件指针从当前位置前移10个字节 二、填空题(每空2分,共20分) 1. 要打印出当前盘当前目录下的所有扩展名为.dat的文件内容,应使用的DOS命令是 (1) 。 2. 设a,b,c为int型变量,且a=10,b=5,c=1,则执行完以下语句:a/=10-(++b)-(c--); a的值变为 (2) 。 3. 在以下程序片断,请问执行后的输出结果是 (3) 。 int n=10; while(n>7){printf(\"%d\ 4. 若有以下定义和语句 int w[10]={23,54,10,33,47,98,72,80,61},*p;p=w; 则通过指针p引用值为98的数组元素的表达式是 (4) 。 5. 以下函数用来在w数组中插入x,w数组中的数已按由小到大顺序存放,n为数组中存放的数据的个数。插入后数组中的数仍有序。请填空。 int fun(char *w,char x,int *n) { int i,p; p=0; w[*n]=x; while(x>w[p]) (5) ; for(i=*n;i>p;i--) w[i]=w[i-1]; w[p]=x; ++*n; } 13 6. 以下程序求a数组中所有元素的和,函数isprime用来判断自变量是否为素数。素数是只能被1和它本身整除且大于1的自然数。 #include isprime(int x) { int i; for(i=2;i<=x/2;i++) if(x%i==0) return(0); if(x>1) (7) ; else return(0); } 7. 以下两条if语句可合并成一条if语句为 (8) 。 if(a<=b) x=1; else y=2; if(a>b) printf(\"****y=%d\\n\else printf(\"####x=%d\\n\ 8. 在对文件进行操作的过程中,若要求文件的位置回到文件的开头,应当调用的函数是 (9) 函 数。 9. 若给fun函数的形参s传送字符串\"□□□□6354abc\",则函数的返回值是(10) 函数。 long fun(char s[]) { long n; int sign; for(;isspace(*s);s++); sign=(*s=='-')?-1:1; if(*s=='+'||*s=='-')s++; for(n=0;isdigit(*s);s++) n=10*n+(*s-'0'); return sign*n; } 三、阅读下列程序,写出程序运行结果(每小题4分,共20分) [程序1] void main() {char c1=97; if(c1>='a'&&c1<='z') printf(\"%d,%c\ else printf(\"%c\} 运行结果为: 。 [程序2] void main() { int a[10]={1,2,3,4,5,6,7,8,9,10}, *pa,*pb,x,i; for(i=0,pa=a,pb=a+9;i<5;i++,pa++,pb--) {x=*pa;*pa=*pb;*pb=x;} for(pa=a;pavoid main() 14 {int i,j,k; for(i=0;i<5;i++) {for(k=0;k<=5-i;k++)printf(\" \"); for(j=0;j<2*i-1;j++)printf(\"*\"); printf(\"\\n\"); } } 运行结果为: 。 [程序4] void main() {char c; while((c=getchar())!='\\n') switch(c-'1') { case 0: case 1:putchar(c+2); case 2:putchar(c+3);break; case 3:putchar(c+4); default: putchar(c+1);break; } printf(\"\\n\");} 若从键盘输入321 运行结果为: 。 [程序5] #include void main() { printf(\"%ld\\n\} 运行结果为: 。 四、编程题(共20分) 1.编写一个程序,从键盘上输入4个整数,输出其中的最小值 (6分) 2.求数列的前10项之和:2/1,3/2,5/3,8/5,13/8,21/13,„„。(7分) 3.编程,求一个3×3矩阵对角线之和。(7分) 参考答案 一、单项选择题 1. C 2.D 3.A 4.C 5.C 6.C 7.A 8.A 9.C 11.B 12.B 13.D 14.A 15.B 16.B 17.C 18.B 19.D 21.B 22.D 23.A 24.D 25.C 26.D 27.A 28.C 29.D 31.D 32.A 33.C 34.A 35.B 36.B 37.A 38.D 39.B 二、填空题 1. (1)COPY *.dat prn 2.(2)3 3.(3)10 9 8 4.(4)*(p+5) 5.(5)++p或p++ 6.(6)i (7)return(1) 7.(8)if(a<=b) {x=1;printf(\"###x=%d\\n\ else {y=2;printf(\"***=%d\ 15 10.C 20.A 30.A 40.D 8.(9)rewind() 9.(10)6354 三、阅读下列程序,写出程序运行结果 1. 97,b 2. 10 9 8 7 6 5 4 3 2 1 5. * *** ***** ******* 6. 64534 5. 14 四、编程题 1. #include void main() {int num1,num2,num3,num4,min; printf(\"请输入四个整数:\"); scanf(\"%d,%d,%d,%d\ min=(num1>num2)?num2:num1; /*先找出前两个数的最小值*/ if(min>num3)min=num3; if(min>num4)min=num4; printf(\"四个整数中的最小值为:%d\\n\} 2. #include float a=2,b=1,s=0; for(i=1;i<=n;i++) {s=s+a/b; t=a; a=a+b; /*将前一项分子与分母之和作为下一项的分子*/ b=t;} /*将前一项分子作为下一项的分母*/ printf(\"数列的前10项之和为:%9.6f\\n\ } 3. #include scanf(\"%f\} main() {float a[3][3],sum=0; int i,j; /*输入3×3矩阵*/ printf(\"输入3×3矩阵:\\n\"); for(i=0;i<3;i++) for(j=0;j<3;j++) {printf(\"请输入a[%d][%d]:\ scanf(\"%f\ 16 } /*求矩阵对角线元素之和*/ for(i=0;i<3;i++) {sum+=a[i][i];} printf(\"矩阵对角线元素之和为:%6.2f\\n\输出*/ } 注:关于本程序中的void empty()函数。如果使用整型数组,就不需要用void empty()函数。使用实型数组,如果没有此函数,在TurboC2.0环境下运行时,会出现错误提示: Scanf:floating point formats not limked Abnormal prpgram termination. 第3套 C语言程序设计笔试样题及参考答案 一、单项选择题(每题1分,共40分) 1. 按电子器件分类,第二代计算机主要是采用 1 作为逻辑开关元件。 A.电子管 B.中小规模集成电路 C.晶体管 D.大规模集成电路 2. 在下列各种进制的数据中,最大的数是 2 。 A.(5F)16 B. (88)10 C.(136)8 D.(1011101)2 3. 冯·诺依曼原理只要是指 3 。 A.运算的精确度 B.存储程序和自动控制 C.高速运算能力 D.智能化体系结构 4.以下关于计算机语言的描述,错误的是 4 。 A.在计算机语言中,汇编语言属于低级语言 B.FoxPro2.5b for Windows语言、C语言、Fortran90语言均属于高级语言 C.机器语言可以被计算机直接执行 D.所有计算机语言程序都必须被编译后才能在计算机上运行。 5. 以下 5 是多媒体计算机必备的设备。 A.视频卡 B.打印机 C.声卡 D.扫描仪 6. 通常说的硬盘容量为80G,指的是 6 。 A.80G bit B. 80G byte C.80G个字 D.80,000个字 7. 在Windows2000中,相同磁盘不同文件夹之间的文件复制操作可以 7 。 A.直接用鼠标将选定的文件拖动到目标文件中 B. 按住Ctrl健后用鼠标将选定的文件拖动到目标文件中 C. 按住Alt健后用鼠标将选定的文件拖动到目标文件中 D. 按住Shift健后用鼠标将选定的文件拖动到目标文件中 8. 在Windows2000中,利用回收站可以恢复 8 上被误删除的文件。 A.硬盘 B. 软盘 C.内存 D.光盘 9. 以下正确的E-mail地址是 9 。 A.www.sohu.com B.@spks.com C.spka@sohu.com D.spks.com@ 10.发现软盘上有文件已经感染上病毒,下列不能清除病毒的方法是 10 。 A.将软盘快速格式化 B.用有效的杀毒软件清除该软盘中的病毒 C.将软盘全面格式化 D.将软盘上所有的文件移动到硬盘中 11. 以下选项中合法的用户标识符是 11 。 A.long B._2Test C.3Dmax D.A.dat 12. 一个C语言程序是由 组成。 A. 若干过程 B. 若干子程序 C. 若干函数 D. 一个主程序和若干子程序 13. C语言中,要求参加运算的数必须是整数或字符的运算符是 13 。 A. / B. ! C. % D. = 14. int类型的数据取值范围是 14 。 17 A.0-255 B.-32768至32767 C.-256至255 D.0至65535 15. 下列属于C语言合法的字符常量是 15 。 A. '\\97' B. \"A\" C. '\' D. \"\\o\" 16. 若x为unsigned int型变量,则执行以下语句后的x的值为 16 。 x=65534; printf(\"%d\ A.65534 B. 2 C.无定值 D.-2 17. 以下合法的赋值语句是 17 。 A.a=(5+b,d++,a+5); B.x=y=50 C.x+y D.c=int(a+b) 18.已知w=0,x=1,y=2,z=3,a=4,b=5;则执行语句(a=w>x)&&(b=y>z);后,a,b的值为 18 。 A.0,0 B.4,5 C.0,5 D.4,0 19. 设x、y、t均为int型变量,则执行语句:x=y=4;t=++x||++y;后,y的值为 19 。 A.不定值 B.5 C.4 D.1 20. 若有以下程序段,执行后的输出结果是 20 。 int a=3; printf(\"%d\\n\ A.-6 B.12 C.0 D.-12 21. putchar函数可以向终端输出一个 21 。 A.整型变量表在式值 B.实行变量值 C.字符串 D.字符或字符型变量值 22. 函数fabs(x)的功能是 22 。 A.对x取整 B.对x取绝对值 C.对x取平方根 D.计算x的平方 23. 若给定条件表达式(m)?(a++):a- -则其中表达式m和 23 等价。 A.m==0 B.m==1 C.m!=0 D.m!=1 24. 为了避免嵌套的if-else的二义性,C语言规定,else与 24 配对。 A.与最外层的if B.其之前最近的不带else的if C.其之后最近的if D.与最近的{}之前的if 25. 定义如下变量和数组: int i,x[3][3]={1,2,3,4,5,6,7,8,9}; 下面语句的输出结果是 25 。 for(i=0;i<3;i++)printf(\"%2d\ A.1 5 9 B.1 4 7 C. 3 5 7 D.3 6 9 26. 若i为整型变量,则以下循环执行次数是 。 for(i=2;i==0;) printf(\"%d\ A.0次 B.1次 C.2次 D.无限次 27. 若有定义int x[10]={0,2,4};则数组x在内存中所占字节数为 26 。 A.3 B. 4 C.10 D.20 28. 若有以下程序执行后,输出的结果是 28 。 Char str[]=\"abc\\102\\r12\\\\\\";printf(\"%d\ A.9 B.10 C.12 D.15 29. 以下数组定义中不正确的是 29 。 A.int a[2][3]; B.int b[ ][3]={0,1,2,3,4}; C.int c[10][10]={0}; D.int d[3][ ]={{1,2},{3,4},{5,6}}; 30. 以下程序的输出结果为 30 。 #define M(x,y,z) x*y*z main() 18 { int a=1,b=2,v=1; printf(\"%d\\n\ A.6 B.7 C.8 D.18 31. 以下是对函数的描述,不正确的是 31 。 A.调用函数时,实参可以是常量、表达式 B.调用函数时,将为形参分配内存单元C.调用函数时,实参于形参个数必须相同 D.调用函数时,形参必须是整数 32. 以下程序的输出结果是 32 。 main() {int a[10]={9,8,7,6,5,4,3,2,1,0},*p=a+5; printf(\"%d\ A.3 B.4 C.5 D.a[4]的地址 33. 若有程序段 int *p,a=6,b=1; p=&a;*p=10;a=a+b;执行该程序段后,a的值是 A.7 B.10 C.11 D.20 34. 若有以下语句:int c[4][5],(*p)[5]; p=c; 则能正确引用c数组元素的是 。 A.p+1 B.*(p+3) C.*(p+1)+3 D.*(p[0]+2) 35. 在调用函数时,若果实参是简单变量,它于对应形参之剑的数据传递方式是 35 。 A.地址传递 B.单向值传递 C.传递方式由用户指定 D.由实参传给形参,再由形参传给实参 36. 设有如下定义: struct ks {int a;float b}data,*p; 若有p=&data;,则对data中的a域的正确引用是: A.(*p).a B.p.data.a C.p->data.a D.(*p).data.a 37. 以下枚举类型的定义中正确的是 36 。 A.enum a={one,two.three}; B. enum a{\"one\ C. enum a={\"one\ D. enum a={one=8,two=9,three}; 38. 以下各选项企图说明一种新类型名,其中正确的是 38 。 A.typedef al int; B. typedef a2= int; C. typedef int a3 D. typedef a4; int; 39. 在c语言中,用w+方式打开一个文件后,可以执行的文件操作是 A.可以任意读写 B.只读 C.只能先写后读 D.只写 40. 当顺利执行了文件关闭操作时,fclose函数的返回值是 40 。 A.0 B.Ture C.-1 D.1 二、填空题(每空2分,共20分) 1. 设有int a=5,b=9;则表达式!(b>a)||(a>4)的值为 (1) 。 2. 在Turbo C集成开发环境下,将当前文件以指定的文件名存盘的功能热键是 (2) 3. 在C标准库函数中,字符串处理函数的原型在 (3) 头文件中。 4. 从赋值语句wang.birth.year=2005;可以判断birth是 (4) 变量 5. 以下函数用来求两整数之和,并通过形参将结果传回。请填空。 void fun(int x,int y, z) {*z=x+y} 6. 有如下程序。 main() { unsigned int x=3,y=10; printf(\"%d\\n\} 由输出结果是 7. 设有下列结构变量sx的定义: struct {long num; char name[20]; union{float y;short z;}yz; 19 }sx; 则表达式sizeof(sx)的值是 8. 下面函数程序实现交换用它的两个整型变量x和y的值,在程序划线处填入相应的内容。。 #include void main(void ) { int x,y; scanf(\"%d,%d\swap( 9 ); printf(\"%d,%d\\n\} void swap( 10 ) { int temp; temp=*x;*x=*y;*y=temp; } 三、阅读下列程序,写出程序运行结果(每小题4分,共20分) [程序1] #include for(i=1;i<5;i++) {for(k=0;k<=4;k++)printf(\"□\"); for(j=0;j<2*i;j++)printf(\"#\"); printf(\"\\n\"); } } 运行结果为: 。 [程序2] 运行时假定从键盘输入数据为:10 9 8 7 6 5 4 3 2 1 #include for(i=0;i<10;i++) scanf(\"%d\ for(;--p>=str;) if(*p%2) printf(\"%3d\运行结果为: 。 [程序3] #include void main() { int b; for(b=1;b<=5;b++) row(b);} 运行结果为: 。 [程序4] 在运行时从键盘输入1 #include 20 void main() { int k; scanf(\"%d\ switch(k) {case 1:printf(\"%d,%d\\n\ case 2:printf(\"%d,%d\\n\ case 3:printf(\"%d,%d\\n\ case 4:printf(\"%d,%d\\n\ default: printf(\"full!\\n\"); } } 运行结果为: 。 [程序5] #include void main() {int x; x=subT(4); printf(\"%d\\n\} 运行结果为: 。 四、编程题(共20分) 1.输出100以内所有个位数为6且能被3整除的自然数。(如36,66,96„„) (6分) 2.编写函数,求级数S=1+2+3+4+„+n,并在主函数中求 y123123412345(7分) 12345612345673.根据以下程序框架,补充代码,求方阵两对角线元素只和及其转置矩阵。(7分) (要求:方阵用二维数组a表示,转置矩阵用t表示,s1,s2表示两对角线元素之和) #include { int a[3][3]={1,3,5,7,9,11,13,15,17}; int i,j,s1,s2,t[3][3]; „„ } 参考答案 一、单项选择题 1. C 2.A 3.B 4.D 5.C 6.B 7.B 8.A 9.C 10.D 11.B 12.C 13.C 14.B 15.C 16.A 17.A 18.C 19.C 20.D 21.D 22.B 23.C 24.B 25.C 26.A 27.D 28.A 29.D 30.B 31.D 32.C 33.C 34.D 35.B 36.A 37.D 38.C 39.C 40.A 二、填空题 1. (1)1 2.(2)F2 3.(3)string.h 4.(4)结构型或联合型 5.(5)int * 6.(6)13 7.(7)28 8.(8)void swap(int *,int *); (9)&x,&y; (10)int *x,int *y 三、阅读下列程序,写出程序运行结果 1. ## #### 2. 1 3 5 7 9 21 3. 1 2 4 ###### ######## 4. 1 1,1 1,2 2,1 -3,2 四、编程题 1. #include 一、单项选择题(每题 1 分,共40分) 1. 计算机在实现工业自动化方面的应用主要表现在____________________________。 A. 数据处理 B. 实时控制 C. 人工智能 D. 数值计算 2. 在下列各种进制的数据中, 最小的数是____________________________。 A.(101001)2 B.(53)8 C.(2B)16 D(44)10 3. 微型计算机系统采用总线结构对 CPU、存储器和处设进行连接。总线通常由 ______________3部分组成。 A. 数据总线、信息总线和传输总线 B. 数据总线、地址总线和控制总线 C. 地址总线、运算总线和逻辑总线 D. 逻辑总线、传输总线和通信总线 4. 下列关于计算机语言的叙述中____________________________正确的是。 A. 在计算机语言中,只有机器语言属于低级语言 22 B. 高级语言源程序可以被计算机直接执行 C. C语言属于高级语言 D. 机器语言是与所用机器无关的语言 5. 下列设备中____________________________多媒体的必备部件。 A. 扫描仪 B. 声卡 C. 网卡 D. 软驱 6. 多任务机制是指操作系统可以控制____________时间分配,让计算机同时执行多个应用程序。 A.控制器 B. 运算器 C.CPU D.存储器 7. 在 Windows 系统 中,一个应用程序被最小化后,该应用程序将 _______________________。 A. 被终止执行 B. 暂停执行 C. 在前台执行 D. 被转入后台执行 8. 通常一台计算机要接入国际互联网,应安装的设备是____________________________。 A. 网络操作系统 B. 调制解调器或网卡 C. 网络查询工具 D. 浏览器 9. 下列 4项内容中,不属于Internet基本功能的是____________________________。 A. 电子邮件 B. 文件传输 C. 实时监测控制 D. 远程登录 10. 计算机病毒的主要危害是____________________________。 A. 损坏计算机硬盘 B. 破坏计算机显示器 C. 降低 CPU主频 D. 破坏计算机软件和数据 11. 结构化程序设计规定的 3种基本控制结构是____________________________。 A. 顺序、选择和转向 B. 层次、网状和循环 C. 模块、选择和循环 D. 顺序、选择和循环 12. 以下正确的 C语言标识符____________________________。 A. %x B. a+b C. a123 D. test ! 13. 设整型变量 a的值为 2,下列表达式值为1的是____________________________。 A.a%3 B. a/3 C. --a D.a++ 14. 设变量 a、b、c已定义并赋值,则下列表达式中符合 C语言语法规则的是____________。 A.a=5++ B.a=b=c++ C. a= %2 D.b=a+1=2 15. 下列式中,值不为4 的表达式是____________________________。 A. sizeof( unsigned long) B. sizeof( long) C.sizeof(unsigned:int). D. sizeof(float) 16. 下列式中,最终运算结果的数据类型不是单精度的表达式是___________________________。 A. (int)(3 +3.0) B:le -3 C. (float) (3) D.(int)3.0 +3.0 17. 字符串\"ab\\x41 \\\\ 34cd\\ l02y\"的长度____________________________。 A.10 B.12 C.14 D.18 18. 设整型变量 x、y、z均为 2,表达式(x ++)+ (y ++)+ (z ++)的值是_______________________。 A.6 B.7 C.8 D.9 19. 设int a = 0,b = 0,c =0;c=++ a ||b ++;则 a,b,c值分别是_______________________。 A.0、2、0 B.1、1、1 C. 1、1、0 D. 1、0、1 20. 设有语句 scanf(\" %d,%d\;要使m、n的值依次为2、3,正确的输入是_______________________。 A.2□3↙ B.2,3↙ C.2;3↙ D. 2↙ 3↙ 21. 设整型变量 a,b 的值均为 8。 printf(\"%d,%d\",(a++,++b),b--);的输出是______。 A.8,8 B.8,7 C.9,9 D. 8,9 22. 在VC++中,仅能连续完成组建的操作热键是_______________________。 23 A.Alt+F7 B.Ctrl+F7 C.F7 D. Ctrl + F5 23. C标准库函数中,数学函数的原型在_______________________头文件中。 A. stdio.h B. math.h C. string.h D. ctype. h 24. 最适合解决选择结构\"若 a> = 0,则 b=1;否则 b= 0\"的语句是_______________________。 A.if B.if-else C.switch D嵌套的 if- else 25. 设 int x,y,z=4;x =y= ++ z;x =(y> z)?x+2: x++;则x的值是_______________________。 A.4 B.5 C.6 D.7 26. 设执行变量 y初值为 3,执行下列循环语句后,变量 y的值是_______________________。 do y ++;while(y ++ <4); A.3 B.4 C.5 D.6 27. 语句 while(! e);中的条件! e等价于_______________________。 A.e==0 B.e!=1 C. e!=0 D. ~e 28. 以下一维数组 a 的正确定义是_______________________。 A.int a(10); B.int n = 10,a[n]; C.int n ; D. #define N 10 int a[N]; scanf(―% d‖,&n); int a[n]; 29. 在执行 char str[10]= \"china\\n\\0\";strlen(str)的结果是_______________________。 A.5 B.6 C.7 D.8 30. 设有语句\"int a[]={3,4,5,9,8,7};\",则表达戎 a[1]-a[4]的值是_______________________。 A.-6: B6 C.- 4 D. 2 31. 设有定义:int s[] = {1,3,5,7,9),* p=&s[0];则值为7的表达式是_______________________。 A. * p+3 B. *p+ C. *(p+ 3) D. *(p+ 4) 32. 若有以下定义.则值为 4 的表达式是_______________________。 int a[]= {1,2,3,4,5,6,7,8,9,10},*p=a; A. p += 3 , *(p++) B.p+=3,*++p C.p+=4,*p++ D.p+=4,++*p 33. C语言中的函数_______________________。 A. 可以嵌套定义 B. 不可以嵌套调用 C. 可以嵌套调用,但不能递归调用 D. 嵌套调用和递归调用均可 34.下列函数定义中,错误的是_______________________。 A.int f(int *pl,int p2) B. void f(int *pl, int p2) { * pl += p2;return(p2);} {pl+= p2;return(*p1);} C. f(int *p1,int p2) D.void f(int *pl, int p2) {*pl+= p2;return(*p1);} { * pl += p2} 35. 设有结构体及其数组和指针变量的定义语句 struct {int x;}y[2],*p=y; 则下列表达式中不能正确表示结构体成员的是_______________________。 A.(* p).x B. *(p+1).x C. y[0].x D.(&y[1] ->x) 36. 若定义 union ex{int i;float f;char a[l0];}x;则 sizeof(x)的值是_________________。 A.4 B.6 C.10 D.16 37. 下列语句中,不能将文件型指针fp指向的文件内部指针置于文件头的语句是______________。 (注:假定能正确打开文件) A.fp=fopen(\"abc. dat\",\"w\") B. rewind(fp} C.feof (fp) D. fseek( fp,OL,0)) 24 38. 设有宏定义, #define M(x) x<0?-1:x 则表达式\"M(3.0)+ 1\"的值是_______________________。 A:- 1 B.0 C.1 D.4 39. 下列语句中,不能正确地从键盘上读取单个宇符存入字符型变量ch的语句是_____________。 A. scanf(―%c\",&ch); B.ch = getchar(); C.ch = fgetc(stdin); D. fgetc土(stdin,&ch) 40. main函数可以带两个形参,一般分为 argc和 argv,其中 argv可以定义为______________。 A.int argv; B. char ** argv[]; C. char argv[]; D. char * argv[]; 二、填空题(每空 2 分,共20分) 1. 设int a = 3,b= 5;float x = 7.5,y=3.5;则表达式 (float)a + b/2 + ( int)x%(int)y; 的值是 (1) 。 2. 判断两个(float)变量x,z是否相等,一般用语句:if( (2) )。 3. 已知函数定义为 int ss(int a, float * p) {„„} 则此函数的两个参数类型分别是:整型、 (3) 。 4. 设a为 float型变量,则能将 a中的数值保留一位小数的表达式是 (4) 。 5. 设int a=012,b=11,c=3表达式a< <(c%b)的值是 (5) 。 6. 设有定义语句: int a[][3]={{1,2,3},{4,5,6}},(*p)[3]=a; 则表达式*(*p+1)的值是 (6) 。 7. 执行下列语句后,a的值是 (7) 。 int a=12;a+=a-=a*a; 8. 下列程序的主要是计算并输出(1)×﹙1+2﹚×﹙1+2+3﹚ׄ×﹙1+2+„+10﹚将横线处 缺少的部分填上。 main() { float (8) ,x; int i,j; for(i=0;i<11;i++) { (9) ; for(j=0;j<=i;j++) (10) ; y=y*x; } printf(―%f\\n‖,y); } 三、阅读下列程序,写出程序运行结果(每小题4分,共20分) 【程序1】 int w=2; int f(int x) { int y=1; static int z=3; y++;z++; 25 return(x+y+z); } main() { int k; for (k=0;k<3;k++) printf(―%4d‖,f(w++)); } 运行结果为: 。 【程序2】 #include { int x=1,y=1,a=0,b=0; switch(x) { case 1: switch(y) { case 0:a++; case 1:b++; case 2:b++;break; } case 2:a++;b++;break; case 3:a++;b++; } printf(―a=%d,b=%d\\n‖,a,b); } 运行结果为: 【程序3】程序运行时,假定从键盘输入:1234567890987654321↙ #include { int i,ch,a[8]; for(i=0;i<8;i++) a[i]=0; while((ch=getchar())!=‘\\n‘) if(ch>=‘0‘&&ch<=‘7‘) a[ch-‗0‘]++; for(i=0;i<8;i+=2) printf(―a[%d]=%d\\n‖,i,a[i]); } 运行结果为: 。 【程序4】 #include main() { int y[2][3]={9,8,7,6,5,4}; int m[2],k,j; for(k=0;k<2;k++) { m[k]=y[k][0]; 26 for(j=1;j<3;j++) if(y[k][j] } 运行结果为: 。 【程序5】 #include void sub(char *,int,int); main() { static char s[10]=‖c-progranm‖; int num=5; sub(s,num,7); printf(―%s\\n‖,s); } void sub(char *ss,int num1,int num2) { char t,*p; p=ss+num2;ss=ss+num1; while(ss {t=*ss;*ss=*p;*p=t;ss++;p--;} } 运行结果为: 。 四、编程题(共20分) 1.编程,输入12个整数。按照从后向前的顺序,依次找出并输出其中能被7整除的所有整数,以及这些整数的和。(6分) 2.编程,输入一个3×3的矩阵,求两个对角线元素中的一个最大值。(7分) 3.根据以下框架编写程序,用递归函数按下列公式计算并输出。(7分) s(n)=12+22+32+„+n2 递归计算公式:s(n)= s(n-1)+n*n 递归结束条件:s(1)=1*1=1 #include float s(int n) { } 27 参考答案 一、 单项选择题 1.B 2.A 3.B 4.C 5.B 6.C 7.D 8.B 9.C 10.D 11.D 12.C 13.C 14.B 15.C 16.A 17.A 18.A 19.D 20.B 21.A 22.C 23.B 24.B 25.B 26.C 27.A 28.D 29.B 30.C 31.C 32.A 33.D 34.B 35.B 36.C 37.C 38.D 39.D 40.D 二、填空题 1.(1)6.000000 2.(2)fabs(x-z)<1e-6 3.(3)指向浮点型指针 4.(4)(int)(a*10+0.5)/10.0 5. (5)80 6. (6)2 7. (7)-264 8. (8)y=1.0 (9)x=0.0 (10)x=x+j 三、阅读程序,写出程序运行结果 1.8 10 12 2. a=1,b=3 3. a[0]=1 a[2]=2 a[4]=2 a[6]=2 4.7 5.c-proargnm 四、编程题 【程序1】 #include { int i,sum=0,a[12]; for(i=0;i<12;i++) scanf(―%d‖,&a[i]); for(i=11;i>=0;i--) if(a[i]%7==0) {sum+=a[i]; printf(―%d‖,a[i]); } printf(―\\nsum=%d\\n‖,sum); } 【程序2】 #include {int a[3][3],imax; int i,j; for(i=0;i<3;i++) for(j=0;j<3;j++) scanf(―%d‖,&a[i][j]); imax=a[0][0]; for(i=1;i<3;i++) if(imax28 【程序3】 #include scanf(―%d‖,&n); printf(―s(%d)=%f\\n‖,n,s(n)); } float s(int n) { float w; if(n==1) w=1.0; else w=s(n-1)+n*n; return(w); } 第5套 C语言程序设计笔试样题及参考答案 一、单项选择题(每题1分,共40分) 1.计算机软件系统一般包括____________________________。 A.系统软件和应用软件 B.系统软件和字处理软件 C.管理软件和应用软件 D.科学计算软件和应厢软件 2.将二进制数1000000l转换为十进制数应该是____________________________。 A.127 B.129 C.126 D.128 3.一台计算机字长是4个字节,表示____________________________。 A.能处理的字符串最多由4个英文字母组成 B.能处理的数值最大为4位十进制数9999 C.在CPU中作为一个整体加以传送的二进制数码为32位 D.在CPU中运算的结果最大为232 4.配置高速缓冲存储嚣(Cache)是为了解决____________________________。 A.内存储器与辅助存储器之间速度不匹配问题 B.CPU与内存储器之间速度不匹配问题 C.CPU与辅助存储嚣之间速度不匹配问题 D.主机与外设之间速度不匹配问题 5.下列关于计算机病毒的叙述中,正确的是____________________________。 A.计算机病毒只感染可执行文件 B.计算机病毒只感染文本文件 C.计算机病毒只能通过软件复制的方式进行传播 D.计算机病毒可以通过网络或读写盘等方式进行传播 6. Windows2000的文件结构是一种___________________________结构。 A.关系 B.网状 C.对象 D.树状 7. 在Windows2000环境下,PrintScreen键盘的作用是____________________________。 29 A.打印当前窗口的内容 B.打印屏幕内容 C.复制屏幕到剪贴板 D.复制当前窗口到剪贴板 8. Internet实现了分布在世界各地的各类网络互联,其最基础和核心的协议是 ___________________。 A.TCP/IP B. FTP C.HTML D.HTTP 9.通常一台计算机要接入互联网,应该安装的设备是____________________________。 A.网络操作系统 B.调制解凋器或网卡 C.网络查询工具 D.浏览器 10.设在每屏1024×768个像素的强示器上显示一幅真彩色(24位)的图形,其显存容量至 要___________________________个字节。 A.1024×768×24 B.1024×768×2 C.1024×768×3 D.1024×768×12 11.C语言程序的基本单位是____________________________。 A.函数 B.标识符 C.表达式 D.语句 12.设int类型的数据长度为2字节,则该类型数据的取值范围是 ____________________________。 A.0至65536 B.0至65535 C.-3267至32768 D.一32768至32767 13.在C语言中,逻辑值“真”是用____________________________表示的。 A.预定义为真值的宏 B.非零数 C.正数 D.非零整数 14.以下____________________________符合c语言语法的实型常量。 A.1.3E0.5 B.7E-2 C.3.14159eE D.E5 15.以下___________________________合法的一组用户定义标识符。 A.If B.turbo C.3CON D.void int _001 include k_3 16.以下____________________________符合C语言语法的赋值表达式。 A.d=8+e+f=d+a B.8+e=f=d C.d=f=8+e++ D.d=8+e++=d+7 17.若有定义 #define a 4 int x=0;float y=1.12;char z=’A’; 则下面错误的语句是____________________________。 A.a++ B.x++ C.++y D.++z 18.C语言对于嵌套if语句规定else总是_______________________匹配。 A.与最外层的if B.与之前最近的if C.与之前最近的不带else的if D.与最近的{}之前的if 19.若a,b,c均为int型变量,则执行以下语句后,a、b值分别为_________________________。 a=b=c=0: a++&&++b||c++; A.1,0 B.0,1 C.1,1 D.0,0 20.设int a=3;下列表达式值等于0的是____________________________。 A.a&&(a>0) B.!a||a C.a%=a D.a>=a 21.设int a=5,b=2,c=3,d=4;则表达式a>b?a:c>d?c:d的值是____________________________。 A.2 B.3 C.4 D.5 22.在C语言中,设一表达式中包含有int,long,char和unsigned类型的变量和数据,则 这4种类型数据转换的规则是____________________________。 30 A.int->unsingned->long->char B.char->int->long->unsingned C. char->int->unsingned->long D.int->char->unsingned->long 23.若有语句scanf(”%d%d”,&a,&b);要使变量a,b分别得到10和20,正确的输入形 式为____________________________。 A.10 20 B.10,20 C.1020 D.10:20 24.以下4个选项中,不能看作C语言的一条语句是____________________________。 A.{;} B.a=1,b=1,c=1; C.if(x>0); D.if(b==1)k=2;n=3; 25.若k为整型变量,则下面while循环执行的次数为____________________________。 k=10; while(k==0) k=k-1; A. 0次 B. 1次 C. 10次 D.无限次 26.数组定义char a[10]={‘a‘,‘b‘,‘c‘}包括了____________________________元素 A.3 B. 9 C. 4 D.10 27.数组名作为实参传给被调用的函数时,形参获得的是 A.该数组第一个元素的值 B.该数组所有元素的值 C.该数组第一个元素的首地址 D.该数组所有元素的首地址 28.函数strlen(”1234\0xy“)的值为____________________________。 A.7 B. 8 C. 4 D.9 29源程序TEST.C经编译产生的目标文件和连接后产生的可执行文件是 ____________________________。 A. TEST.bak和TEST.obj B. TEST.obj和TEST.exe C. TEST.ext和TEST.c D. TEST.bak和TEST.exe 30.以下存储类型只有在使用时才为该类型变量分配内存的是_________________________。 A.auto和static B.auto和register C tegister和static D.static和extern 3l.有以下定义 #include 不能给a数组输入字符串的语句是____________________________。 A.gets(a); B.gets(a[0]); C.gets(&a[0]); D.gets(b); 32.设int a[]={1,2,3},i,*p=a;根据定义及语法分析______________________是不正确的。 A.a[p-8] B.*(&a[i]) C. p[i] D.*(*(a+i) 33.下列选项中能够完整获取命令行参数的主函数格式是____________________________。 A. main(char argc,char *argv[]) B. void main(void) C.main(int c,char *v[]) D.int main(int argc,char *argv) 34.若定义union uex{ int i;float f:char c;}ex;则sizof(ex)的值是___________________。 A.4 B.5 C.6 D.7 35.feof函数用来判断文件是否结束,如果文件没有结束,则返回值是___________________。 A.-1 B. 0 C.1 D.EOF 36.若定义unsigned int a=3,b=10; printf(―%d\n‖,a<<2|b==1); 则运行结果为___________________。 A.13 B.12 C.8 D.14 37.若有以下定义 31 #define SQR(x)((x)*(x)) main() {float b=3.0; printf(\"sqr=%.2f\\nn\ 则运行结果为___________________。 A.sqr=3.0 B.sqr=9.0 C.sqr=10 D.sqr=10.00 38.设有定义 enum team{my,your=3,his,her=his+5}; 则枚举元素my,your,her的值分别是___________________。 A.0 3 2 B.1 3 4 C.0 3 9 D.0 3 5 39.fread和fwrite函数常用来要求一次输入/输出___________________数据。 A.一个整数 B.一个实数 C.一个字节 D.一组 40.已知赋值语句Wang.year=2005;判断Wang是___________________类型的变量。 A.字符或文件 B.整型和枚举 C.联合或结构 D.实型或指针 二、填空题(每空2分,共20分) 1.已知a=10,b=20,则表达式!a#include int i,n; float x; scanf(”%f,%d”,&x,&n); for(i=1;i<=n;i++) printf(”%d,%e\n”,i, (3) ) ; } double pow(float x,int n) { int i; double p=1.0 for(i=1; (4) ;i++) p*=x; return(p); } 3.求ex=1+x+x2/2!+„„+xn/n!前n+1项之和。 #include float exp,x,t; int i,n; scanf(”%f,%d”,&x,&n); (5) ; exp=1.0; 32 for(i=1;i<=n;i++) { if(t<1e_6) (6) ; (7) ; exp+=t; } printf(\"\n%f\",exp); } 4将已知数据按升序排列。 #include { int i,j,iMin,a[10]={4,3,5,1,10,-8,2,27,7,9},iTemp; for(i=0;i<9;i++) { iMin= (8) for(j=i+1;j<10;j++) if( (9) )iMin=j; if(iMin!=i) { iTemp=a[i]; (10) ; a[iMin]=iTemp; } } for(i=0;i<10;i++) printf(\"%4d\",a[i]); } 三、阅读下列程序,写出程序运行结果(每小题4分,共20分) 【程序1】运行时假定键盘输入字符串为“2004”。 #include while((c=getchar())!='\\n') if(c>='0'&&c<='9') n=n*10+c-'0'; printf(\"value=%d\\n\; } 运行结果为: 。 【程序2】 #include int num[9]= {399,398,397,396,395,299,290,311,301}; int score[9]={81,85,59,77,90,66,89,93,73}; 33 int iMax,iPos,i; iPos=0; iMax=score[iPos]; for(i=1;i<9;i++) if(score[i]>iMax) {iPos=i; iMax=score[iPos]; } printf(\"num=%d,score=%d\; } 运行结果为: 。 【程序3】运行时假定键盘输入数据为:l 2 3 4 5 6 7 8 9 10。 #include int a[10],i; int *p; p=a; for(i=0;i<10;i++) scanf(\"%d\; for(;--p>=a;) if(*p%2) printf(\"%3d\; } 运行结果为: 。 【程序4】运行时假定键盘输入字符为:AxByCz。 #include char str[80]; int i; gets(str); for(i=0;str[i]!='\\0';i++) if(str[i]>='a' && str[i]<='z') str[i]-=32; else if(str[i]>='A' && str[i]<='Z') str[i]+=32; puts(str); } 运行结果为: 。 【程序5】 #include static int a=1; 34 int b; for(b=1;b<=a;b++) printf(\"%5d\printf(\"\\n\"); a++; } void main() { int a; for(a=1;a<=5;a++) row(); } 运行结果为: 。 四、编程题(共20分) 1.设某班有35人参加C语言考试,统计输出考试成绩不及格的人数及其百分比。(6分) 2.根据以下程序框架,编写子函数,实现交换两个整型变量x和y的值。(7分) #include int x,y; scanf(―%d,%d‖,&x,&y); swap(&x,&y); printf(―%d,%d‖,x,y); } void swap( ) { } 3.求3×3方阵两对角线元素之和及其转置矩阵。(7分) (要求:方阵用二维数组a表示,转置矩阵用t表示,s1,s2表示两对角线元素之和)。 35 参考答案 一、单项选择题 l.A 2.B 3.C 4.B 5.D 6.D 7.C 8.A 9.B 10.C 11.A 12.D 13.B 14.B 15.B 16.C 17.A 18.C 19.A 20.C 21.D 22.C 23.A 24.D 25.A 26.D 27.C 28.C 29.B 30.B 3l.B 32.D 33.C 34.A 35.B 36.B 37.D 38.C 39.D 40.C 二、填空题 1.(1) 1 2.(2)double pow(float,int); (3)pow(x,i) (4)i<=n 3.(5)t=1.0 (6)break (7)t*=x/i 4.(8) i (9)a[iMin]>a[j] (10)a[i]=a[iMin] 三、阅读程序,写出程序运行结果 【程序1】value=2004 【程序2】num=311,score=93 【程序3】9 7 5 3 1 【程序4】aXbYcZ 【程序5】1 2 4 3 6 9 4 8 12 16 5 10 15 20 25 四、编程题 1.#include float score[35],percent; int count=0; for(i=0;i<35;i++) scanf(\"%f\; for(i=0;i<35;i++) if(score[i]<60) count++; percent=(float)count/35; printf(\"%d,%5.1f\; } 2.#include scanf(\"%d,%d\; swap(&x,&y); 36 printf(―%d,%d‖,x,y);} void swap(int *px,int *py) { int temp; temp=*px; *px=*py; *py=temp; } 3. #include int a[3][3]={1,3,5,7,9,11,13,15,17},t[3][3]; int i,j,s1=0,s2=0; for(i=0;i<3;i++) { for(j=0;j<3;j++) { t[j][i]=a[i][j]; } s1+=a[i][i]; s2+=a[i][2-i]; } printf(\"%d,%d\\n\; for(i=0;i<3;i++) {for(j=0;j<3;j++) printf(\"%3d\; printf(\"\\n\"); } } 2008年1月安徽省计算机水平考试二级C语言试题 一、单项选择题(每题1分,共40分) 1. 通常将个人计算机称为 1 。 A) PLC B) LCD C) PC D) CRT 2. 下列表示存储器容量的数据中,最大的是 2 。 A) 1GB B) 211MB C) 220KB D) 210B 3. 将十进制数41转换为二进制数,下面结果中正确的是 3 。 A) 00101001 B) 00101011 C) 00100011 D) 00100101 4. 按照计算机应用领域分类,学校使用的成绩管理系统属于 4 。 A) 实时控制 B) 科学计算 C) 数据处理 D) 计算机辅助设计 5. 删除Windows桌面上应用程序的快捷图标,意味着 5 。 A) 该程序连同其图标一起被删除 B) 只删除了该程序,对应的图标被隐藏 C) 该程序连同其图标一起被隐藏 D) 只删除了图标,对应的程序仍然存在 6. 以下关于多媒体技术的叙述中,错误的是 6 。 A) 多媒体技术将各种媒体以数字化的方式集成在一起 37 B) 多媒体技术就是能用来观看DVD电影的技术 C) 多媒体技术已经成为声、文、图等媒体信息在计算机系统中综合应用的代名词 D) 多媒体技术和计算机技术的融合开辟出一个多学科交叉、跨行业的崭新领域 7. 下列的网络IP地址中,正确的是 7 。 A) 249.220.258.202 B) 204.250.9 C) 202.155.98.C D) 202.245.101.201 8. “熊猫烧香”是一种 8 。 A) 办公软件 B) 杀毒软件 C) 计算机病毒 D) 下载工具 9. 下列有关计算机病毒和黑客的说法中,不正确的是 9 。 A) 所有计算机病毒都可以通过杀毒软件彻底清除 B) 计算机黑客是指利用网络入侵别人计算机的人 C) 防范计算机病毒的一种常用办法是在计算机上安装正版的反病毒软件 D) 防范计算机黑客的一种常用办法是在计算机上安装网络防火墙 10. 10 是程序、数据以及相关文档的集合 A) 软件 B) 程序 C) 指令 D) 算法 11. 下列关于C语言程序说法正确的是 11 。 A) C程序书写时,不区分大小写字母 B) C程序书写时,一行只能写一条语句 C) C程序书写时,一条语句可分成几行书写 D) C程序书写时,每行必须有行号 12. C语言中的源程序文件和目标文件的扩展名分别是 12 。 A) c和obj B) C和exe C) com和exe D)obj和c 13. 以下四项中属于ANSI C语言关键字的是 13 。 A) CHAR B) define C) max D) return 14. 在32位机中,double、long、unsigned int、char类型数据所占字节数分别是 14 。 A) 8、2、4、1 B) 2、8、4、1 C) 4、2、8、1 D) 8、4、4、1 15. 设int a=0, b=1, c=2;,则表达式a? a+b:a+c的值是 15 。 A) 0 B) 1 C) 2 D) 3 16. 下列 16 是字符型常量。 A) '\\n' B) \"A\" C) \"\\\" D) '65' 17. 已知int x,y;,执行语句x=(y=10-5, y*2), y-5;后,变量x和y的值分别是 17 。 A) x=0, y=5 B) x=10, y=5 C) x=5, y=0 D) x=5, y=5 18. 已知int x;,当x为大于1的奇数时,下列值为0的表达式是 18 。 A) x%2==1 B) x/2 C) x%2!=0 D) x%2==0 19. 下面程序段执行结果是 19 。 int i=5, k; k=(++i)+(++i)+(i++); printf(\"%d,%d\A) 24, 8 B) 21, 8 C) 21, 7 D) 24, 7 20. 下列正确的赋值语句是 20 。 A) 10=a; B) b=45.6 C) c=15*5; D) a+47=c; 21. 已知int x=1, y=2, z=3;,则逻辑表达式x 23. 已知int x, y; float z;,以下正确的输入语句是 23 。 A) scanf(\"%d%d%f\ B) scanf(\"%d%d%f\ C) scanf(\"%d%6d%6.2f\ D) scanf(\"%d%d%f\"; &x; &y; &z); 38 24. 执行下面的程序: main() {int x=-1; printf(\"%d,%x,%u\则输出结果是 24 。 A) -1, -1, -1 B) -1, -ffff, -32768 C) -1, ffff, -32768 D) -1, ffff, 65535 25. C语言对于嵌套的if语句规定else总是 25 匹配。 A) 与最外层的if B) 与之前最近的if C) 与之前最近的不带else的if D) 与最近的{ }之前的if 26. 下面程序运行结果为 26 main() {char c='a'; if('a' D) do-while语句构成的循环不能用其他语句构成的循环来代替 28. 要使下面程序段输出10个整数,则在下划线处填入正确的数是 28 。 for(i=0; i<= ; i+=2) printf(\"%d\ A) 9 B) 10 C) 18 D) 20 29. 下列描述中不正确的是 29 。 A) 字符数组中可以存放字符串 B) 可以对字符数组进行整体输入、输出 C) 可以对实型数组进行整体输入输出 D) 不能在赋值语句中通过赋值运算符“=”对字符型数组进行整体赋值 30. 下面能对字符数组正确赋给字符串的初始化操作语句是 30 。 A) char s[5]={'C', 'H', 'I', 'N', 'A'}; B) char s[5]={\"CHINA\ C) char s[]=\"CHINA\"; D) char s[5]; s[0]='C'; s[1]='H'; s[2]='I'; s[3]='N'; s[4]='A'; 31. 下面程序段的输出结果是 31 。 char s[ ]=\"\\\\\\101abc\\0\"; printf(\"%s\\n\ A) \\Aabc\\0 B) \\101abc\\0 C) \\101abc D) \\Aabc 32. 有如下程序: main() { int a[6], i, s=0; for(i=1; i<6; i++) {a[i]=i+1; s+=a[i];} printf(\"%d\\n\ 该程序的输出结果是 32 。 A) 18 B) 19 C) 20 D) 21 33. 当调用函数时,实参是一个数组名,则向函数传送的是 33 。 A) 数组的长度 B) 数组的首地址C) 数组每一个元素的地址 D) 数组每个元素中的值 34. C语言中,如果在定义函数时没有指定函数类型,系统会隐含指定为 34 。 A) char B) int C) register D) static 39 35. 一个源文件中定义的全局变量的作用域是 35 。 A) 本函数的全部范围 B) 本程序的全部范围 C) 本文件的全部范围 D) 从定义开始至本文件结束 36. 对于类型相同的两个指针变量之间,不能进行的运算是 36 。 A) < B) = C) + D) - 37. 已知int s[ ]={1, 3, 5, 7, 9}, *p=&s[0];,则值为5的表达式是 37 。 A) *p+2 B) *p+3 C) *(p+2) D) *(p+3) 38. 若有如下语句: int c[4][5], (*p)[5]; p=c; 能正确引用c数组元素的是 38 。 A) p+1 B) *(*p+2) C) *(p+3) D) *(p+1)+3 39. 有如下定义: struct person { char name[9]; int age; }; struct person class[10]={\"John\根据上述定义,能输出字母M的语句是 39 。 A) printf(\"%c\\n\ B) printf(\"%c\\n\C) printf(\"%c\\n\ D) printf(\"%c\\n\40. 设int b=8;,表达式(b>>2)/(b>>1)的值是 40 。 A) 0 B) 2 C) 4 D) 8 二、填空题(每空2分,共20分) 1. 在turbo C 2.0编辑环境中,激活主菜单的热键是 (1) 。 2. 已知int a=7; float x=3.5, y=4.8;,则表达式x+a%2*(int)(x+y)的值是 (2) 。 3. 设有int x, y; scanf(\"%d%*d%d\,从键盘输入数据10□20□30<回车>后,y的值是 (3) 。 4. 已知char s1[10]=\"ABCD\,则strlen(strcpy(s1, s2))的值是 (4) 。 5. 有函数调用语句fun(a, b+c, (d, e));,则该函数调用语句中含有的实参的个数是 (5) 。 6. 以下程序运行的结果是 (6) 。 main() {char a[ ]=\"12345\ int s=0; for(p=a; *p!='\\0'; p++) s=10*s+*p-'0'; printf(\"%d\\n\ } 7. 执行程序段char str[ ]=\"abc\\0def\\0ghi\"; char *p; p=str; printf(\"%s\,则该程序段运行结果是 (7) 。 8. struct person { char name[8]; long num; union{float x; int y;}m; }w; 则表达式sizeof(w)的值是 (8) 。 9. 判断文件指针是否指向文件尾的函数为 (9) 。 10. #define S(x) 5*x main() { int a=1, b=2; printf(\"%d\ } 运行结果是 (10) 。 三、阅读理解题(每小题4分,共20分) 40 1. 下面程序运行的结果 。 main() { int i, j, s=0; for(i=1; i<=4; i++) for(j=1; j<=5-i; j++) s=s+i*j; printf(\"%d\ 2. 下面程序运行的结果 。 main() { int i, a=3, b=4, t; for(i=1; i<=5; i++) switch(i%5) { case 0: b=3; case 1: t=a; a=b; b=t; break; default: b=5; } printf(\"%d, %d\\n\ 3. 下面程序运行的结果 。 main() { int a[10], i, s=0; a[0]=1; a[1]=2; for(i=2; i<10; i++) { a[i]=a[i-1]+a[i-2]; s=s+a[i];} printf(\"%d\\n\ 4. 下面程序运行的结果 。 main() { int i, s=0; for(i=1; i<=5; i++) { static int x=0; x=x+i; s=s+x;} printf(\"%d\\n\} 5. 下面程序运行的结果 。 int f(int n) { if(n==2) return 1; else return f(n-2)+n;} main() { printf(\"%d\\n\} 四、编程题(共20分) 1. (6分)设计程序计算并输出1111。 35992. (7分)设计程序输出下面图形(要求用嵌套循环语句实现) 55555 4444 333 22 41 1 3. (7分)设计程序输入一个字符串并判断其是否是“顺序串”(从小到大或从大到小排序,如:AABccd或dccBAA),“是”则打印“Yes”,“否”则打印“No”。 #include char s[100]; ... } 2008年6月安徽省计算机水平考试二级C语言试题 一、单项选择题(每题1分,共40分) 1. 计算机能够自动工作,主要是因为采用了___________。 A) 二进制数制 B) 大规模集成电路 C) 程序设计语言 D) 存储程序控制原理 2. 下列数值中最大的是___________。 A) (10110)2 B) (120)8 C) (70)10 D) (3A)16 3. 在计算机指令系统中,一条指令通常由___________组成。 A) 数据和字符 B) 操作码和操作数 C) 运算符和数据 D) 被运算数和结果 4. 运算器主要由___________组成。 A) 算术逻辑单元 B)处理器 C) 控制器 D) 存储器 5.下列关于Windows―回收站‖的叙述中,不正确的是___________。 A)―回收站‖中的信息可以清除 B) ―回收站‖中的信息可以还原 C) ―回收站‖的大小可以设置 D) ―回收站”不占用硬盘空间 6. 多媒体信息不包括___________。 A) 文字、图形 B) 音频、视频 C) 光驱、声卡 D) 影像、动画 7. 学校机房的若干台计算机连接而成的网络通常属于___________。 A) WAN B) LAN C) MAN D) GPS 8. FTP是___________。 A) 发送电子邮件的软件 B) 浏览网页的工具 C) 文件传输协议 D) 聊天工具 9. 下列关于计算机病毒的叙述中,不正确的是___________。 A) 计算机病毒只破坏硬件,不破坏软件 B) 计算机病毒是人为编写的一种程序 C) 计算机病毒能通过磁盘、网络等媒介传播、扩散D) 计算机病毒具有潜伏性、传染性和破坏性 10. 下列关于算法的叙述中,正确的是___________。 A) 算法就是对特定问题求解步骤的描述 B) 算法就是程序 C) 算法就是软件 D) 算法没有优劣之分 11.一个可编译运行C语言源程序中,______。 A)主函数有且仅有一个 B)可以有多个主函数 C)必须有除主函数以外的其他函数 D) 可以没有主函数 12.结构化程序设计所规定的三种基本控制结构是 ______。 A)输入、处理、输出B)树形、网形、环形C)顺序、选择、循环D)主程序、子程序、函数 13.以下选项中合法的用户标识符是______。 A)long B)_2test C)3Dmax D)for 42 14.设有:char a='\\101';,则变量a______。 A)包含1个字符 B) 包含3个字符 C) 包含4个字符 D)定义不合法 15.以下选项中运算对象不能用实型的运算符是______。 A)% B)/ C)= D)* 16.已知int i,a;,执行语句i=(a=2*4,a+5),a+6;后,变量i的值为______。 A)8 B)13 C)40 D)46 17.设有以下变量定义,并已赋确定的值: long w; int x; double y; 则表达式w+x+1/y值的数据类型为______。 A)int B)long C)float D)double 18.以下选项中,与k=++n完全等价的表达式是______。 A)k=n,n=n+1 B) n =n+1, k=n C) k=n+1 D) k+=n+1 19.设x,y,t均为int型变量,则执行语句:x=y=0;t=++x || ++y;后,y的值为______。 A)0 B)1 C)2 D) 不确定 20.若整型变量a,b,t已正确定义,现要将a和b中的数据进行交换,下面不正确的是______。 A)t=a; a=b; b=t; B) t=a, a=b, b=t; C) a=t; t=b; b=a; D) t=b; b=a; a=t; 21.设有float a=2,b=4,h=3;,以下C语言表达式中与代数式 1(ab)h计算结果不相符的是2______。 A)(a+b)*h/2 B) 1/2*(a+b)*h C) (a+b)*h*1/2 D) h/2*(a+b) 22.已知a,b,c为int类型,执行语句scanf(\"a=%d,b=%d,c=%d\若要使得a为1,b为2,c为3,则以下选项中正确的输入形式是______。 A)a=1 B)1,2,3 C)a=1,b=2,c=3 D)1 2 3 b=2 c=3 23.对于以下形式:if (表达式) 语句;,其中的表达式______。 A)只能是关系表达式 B)只能是关系表达式或逻辑表达式 C)只能是逻辑表达式 D)可以是任何表达式 24.若变量c为char类型,以下选项中能正确判断出c为数字字符的表达式是______。 A) '0'<=c<='9' B) (c>='0') && (c<='9') C) ('0'<= c) & ('9'>=c) D) (c>=0) && (c<=9) 25.下面有关for 语句的正确描述是______。 A) for语句只能用于循环次数已经确定的情况 B) for语句是先执行循环体语句,后判断作为循环条件的表达式 C)在for语句,不能用break 语句跳出循环体