《计算机二级C语言真题讲解课件.ppt》由会员分享,可在线阅读,更多相关《计算机二级C语言真题讲解课件.ppt(35页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、内内 容容n笔试真题(精选)笔试真题(精选)n09春、春、08秋、秋、08春春n文件文件n20092009春笔试春笔试 试题试题1 1:阅读下列程序说明和程序,在每小题提供的若干可选答:阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。案中,挑选一个正确答案。【程序说明程序说明】输入输入1个正整数个正整数n,计算下列算式的前,计算下列算式的前n项之和。项之和。S=1-1/3+1/5-1/7+运行示例:运行示例:Enter n:2 Sum=0.67#include main()int denominator,flag,i,n;double item,sum;printf(“
2、Enter n:”);scanf(“%d”,&n);denominator=1;(1);sum=0 for(i=1;(2);i+)(3);sum=sum+item;(4);denominator=denominator+2;printf(“Sum=%.2fn”,sum);(1)A、flag=0 B、flag=-1 C、flag=n D、flag=1(2)A、i=n B、in D、i=n(3)A、item=flag/denominator B、item=1/denominator C、item=flag*1.0/denominator D、item=1.0/denominator(4)A、fla
3、g=-1 B、flag=0 C、flag=-flag D、flag=flagS=1-1/3+1/5-1/7+试题试题2 2:阅读下列程序说明和程序,在每小题提供的若干可选答:阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。案中,挑选一个正确答案。【程序说明程序说明】验证哥德巴赫猜想:任何一个大于验证哥德巴赫猜想:任何一个大于6的偶数均可表示为两个的偶数均可表示为两个素数之和。例如素数之和。例如6=3+3,8=3+5,18=7+11。将。将620之间的偶数表示成两个素数之和,打印时一行打印之间的偶数表示成两个素数之和,打印时一行打印5组。要求定组。要求定义和调用函数义和调
4、用函数prime(m)判断判断m是否为素数,当是否为素数,当m为素数时返回为素数时返回1,否则返回,否则返回0。素数就是只能被。素数就是只能被1和自身整除的正整数,和自身整除的正整数,1不是不是素数,素数,2是素数。是素数。运行示例:运行示例:6=3+3 8=3+5 10=3+7 12=5+7 14=3+11 16=3+13 18=5+13 20=3+17 18=7+11#include#include int prime(int m)int i,n;if(m=1)return 0;n=sqrt(m);for(i=2;i=n;i+)if(m%i=0)return 0;_(5)_ main()i
5、nt count,i,number;count=0;for(number=6;number=20;number=number+2)for(i=3;i=number/2;i=i+2)if(_(6)_)printf(“%d=%d+%d”,number,i,number i);count+;if(_(7)_)printf(“n”);_(8)_ (5)A、;B、return 1;C、return 0;D、else return 1;(6)A、prime(i)!=0|prime(number i)!=0 B、prime(i)!=0&prime(number i)!=0 C、prime(i)=0|prim
6、e(number i)=0 D、prime(i)=0&prime(number i)=0(7)A、count%5=0 B、count%5!=0 C、(count+1)%5=0 D、(count+1)%5!=0(8)A、break;B、else break;C、continue;D、;试题试题3 3:阅读下列程序说明和程序,在每小题提供的若干可选答案:阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。中,挑选一个正确答案。【程序说明程序说明】输入一行字符,统计并输出其中数字字符、英文字母和其他字输入一行字符,统计并输出其中数字字符、英文字母和其他字符的个数。要求定义并调用函
7、数符的个数。要求定义并调用函数count(s,digit,letter,other)分类统计字符串分类统计字符串s中数字字符、英文字母和其它字符的个数,函数中数字字符、英文字母和其它字符的个数,函数形参形参s的类型是字符指针,形参的类型是字符指针,形参digit,letter,other的类型是整形指的类型是整形指针,函数类型是针,函数类型是void。运行示例:运行示例:Enter characters:f(x,y)=5x+2y-6 Digit=3 letter=5 other=6#include void count(char*s,int*digit,int*letter,int*other
8、)_(9)_ while(_(10)_)if(*s=0&*s=a&*s=A&*s=z)(*letter)+;else (*other)+;s+;main()int i=0,digit,letter,other;char ch,str80;printf(“Enter characters:”);ch=getchar();while(_(11)_)stri=ch;i+;ch=getchar();str(i)=0;_(12)_;Printf(“digit=&d letter=%d other=%dn”,digit,letter,other);(9)A、int dight=0,letter=0,oth
9、er=0;B、int*dight=0,*letter=0,*other=0;C、dight=letter=other=0;D、*dight=*letter=*other=0;(10)A、*s+!=0 B、*s+!=n C、*s!=0 D、*s!=n(11)A、ch!=0 B、ch!=n C、ch=0 D、ch=n(12)A、count(str,&digit,&letter,&other)B、count(&str,&digit,&letter,&other)C、count(*str,digit,letter,other)D、count(*str,*digit,*letter,*other)试题4
10、:阅读下列程序并回答问题,在每小题提供的若干可选答案中,挑选一个正确答案。#include main()int flag=0,i;int a7=8,9,7,9,8,9,7;for(i=0;i=0;i-)if(ai=8)break;flag=i;printf(“%dn”,flag);flag=0;for(i=0;i7;i+)if(ai=9)printf(“%d”,i);printf(“n”);flag=0;for(i=0;i7;i+)if(ai=7)flag=i;printf(“%dn,flag”);(13)程序运行时,第程序运行时,第1行输出行输出 (13)。A、2 B、0 C、3 D、6(1
11、4)程序运行时,第程序运行时,第2行输出行输出 (14)。A、4 B、-1 C、0 D、5(15)程序运行时,第程序运行时,第3行输出行输出 (15)。A、2 4 6 B、4 C、1 3 5 D、6(16)程序运行时,第程序运行时,第4行输出行输出 (16)。A、2 4 6 B、2 C、1 3 5 D、6 试题5:阅读下列程序并回答问题,在每小题提供的若干可选答案中,挑选一个正确答案。#includeint f1(int n)if(n=1)return 1;else return f1(n-1)+n;int f2(int n)switch(n)case 1:case 2:return 1;de
12、fault:return f2(n-1)+f2(n-2);void f3(int n)printf(“%d”,n%10);if(n/10!=0)f3(n/10);void f4(int n)if(n/10!=0)f4(n/10);printf(“%d”,n%10);main()printf(“%dn”,f1(4);printf(“%dn”,f2(4);f3(123);printf(“n”);f4(123);printf(“n”);(17)程序运行时,第程序运行时,第1行输出行输出 (17)。A、10 B、24 C、6 D、1(18)程序运行时,第程序运行时,第2行输出行输出 (18)。A、1
13、B、3 C、2 D、4(19)程序运行时,第程序运行时,第3行输出行输出 (19)。A、123 B、3 C、321 D、1(20)程序运行时,第程序运行时,第4行输出行输出 (20)。A、1 B、123 C、3 D、321 试题6:阅读下列程序并回答问题,在每小题提供的若干可选答案中,挑选一个正确答案。#include struct num int a,b;void f(struct num s,int n)int index,j,k;struct num temp;for(k=0;k n-1;k+)index=k;for(j=k+1;jn;j+)if(sj.bsindex.b)index=j
14、;temp=sindex;sindex=sk;sk=temp;(21)程序运行时,输入程序运行时,输入5 4 3,输出,输出 (21)。A、3:5 B、2:3 C、1:2 D、4:1(22)程序运行时,输入程序运行时,输入5 3 4,输出,输出 (22)。A、3:5 B、1:2 C、4:3 D、4:2(23)程序运行时,输入程序运行时,输入7 5 2,输出,输出 (23)。A、1:5 B、6:1 C、2:3 D、2:4(24)程序运行时,输入程序运行时,输入4 2 4,输出,输出 (24)。A、3:3 B、4:2 C、2:4 D、4:1 main()int count,i,k,m,n,no;s
15、truct num s100,*p;scanf(“%d%d%d”,&n,&m,&k);for(i=0;in;i+)si.a=i+1;si.b=0;p=s;count=no=0;while(nob=0)count+;if(count=m)no+;p-b=no;count=0;p+;if(p=s+n)p=s;f(s,n);printf(“%d:%dn”,sk-1.b,sk-1.a);试题试题7(28分)(1)定义函数fact(n)计算n的阶乘:n!=1*2*n,函数形参n的类型是int,函数类型是double。(2)定义函数cal(x,e)计算下列算式的值,直到最后一项的值小于e,函数形参x和e的
16、类型都是double,函数类型是double。要求调用自定义函数fact(n)计算n的阶乘,调用库函数pow(x,n)计算x的n次幂。S=x+x2/2!+x3/3!+x4/4!+(3)定义函数main(),输入两个浮点数x和e,计算并输出下列算式的值,直到最到最后一项的值小于精度e。要求调用自定义函数cal(x,e)计算下列算式的值。S=x+x2/2!+x3/3!+x4/4!+程序n20082008秋笔试(精选)秋笔试(精选)试题试题2 2:阅读下列程序说明和程序,在每小题提供的若干可选答:阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。案中,挑选一个正确答案。【程序说
17、明程序说明】求求1-9991-999之间所有满足各位数字的立方和等于它本身的数。之间所有满足各位数字的立方和等于它本身的数。例如例如153153的各位数字的立方和是的各位数字的立方和是1 13 35 53 3+3+33 3=153=153 运行示例:运行示例:1 153 370 371 4071 153 370 371 407#include main()int digit,j,sum,x;for(j=1;j1000;j+)_(5)_ _(6)_ do _(7)_ sum=sum+digit*digit*digit;x=x/10;while(_(8)_);if(sum=j)printf(“%d
18、 ”,sum);(5)A sum=0;B sum=1;C sum=j;D;(6)A x=1;B x=j;C;D x=sum;(7)A digit=x/10;B;C digit=x%10;D digit=x;(8)A x=0 B j!=0 C j=0 D x!=0 试题4:阅读下列程序并回答问题,在每小题提供的若干可选答案中,挑选一个正确答案。程序程序1#include main()int j,k,s1,s2;s1=s2=0;for(j=1;j=5;j+)s1+;for(k=1;k=j;k+)s2+;printf(“%d%d”,s1,s2);(13)程序程序1运行时,输出运行时,输出 (13)。
19、A 0 15B5 0 C5 5 D 5 15(14)程序程序2运行时,输出运行时,输出 (14)。A 0 15B5 0 C5 5 D 5 15(15)程序程序3运行时,输出运行时,输出 (15)。A 0 15B5 0 C5 5 D 5 15(16)程序程序4运行时,输出运行时,输出 (16)。A 0 15B5 0 C5 5 D 5 15 程序程序2#include main()int j,k,s1,s2;s1=0;for(j=1;j=5;j+)s1+;for(k=1,s2=0;k=j;k+)s2+;printf(“%d%d”,s1,s2);程序程序3#include main()int j,k
20、,s1,s2;s1=0;for(j=1;j=5;j+)s1+;for(k=1;k=j;k+,s2=0)s2+;printf(“%d%d”,s1,s2);程序程序4#include main()int j,k,s1,s2;s1=s2=0;for(j=1;j=5;j+,s1=0)s1+;for(k=1;k=j;k+)s2+;printf(“%d%d”,s1,s2);试题6:阅读下列程序并回答问题,在每小题提供的若干可选答案中,挑选一个正确答案。#include main()int k;char ch,a10,*s10=“one”,”two”,”three”,”four”;k=0;while(ch=
21、getchar()!=n&k=5&ch=8)ak+=ch;ak=0;for(k=0;ak!=0;k+)printf(“%s”,s(9-ak)-1);(21)程序运行时,输入程序运行时,输入5678,输出:,输出:A two three B two C one four three D four three two one (22)程序运行时,输入程序运行时,输入8561#,输出:,输出:A two three B two C one four three D four three two one(23)程序运行时,输入程序运行时,输入7902#,输出:,输出:A two three B two
22、 C one four three D four three two one(24)程序运行时,输入程序运行时,输入7633#,输出:,输出:A two three B two C one four three D four three two one n20082008春笔试(精选)春笔试(精选)试题5:阅读下列程序并回答问题,在每小题提供的若干可选答案中,挑选一个正确答案。(17)程序运行时,输入程序运行时,输入10#,输出,输出(17)。A、16 B、10 C、12 D、1(18)程序运行时,输入程序运行时,输入1a0#,输出,输出(18)。A、264 B、10 C、1 D、12#inc
23、lude#define MAXLEN 80main()int k=0,number=0;char strMAXLEN;while(strk=getchar()!=#)k+;strk=0;for(k=0;strk!=0;k+)if(strk=0&strk=0&strk=9)number=number*12+strk 0;else if(strk=A|strk=B)number=number*12+strk A+10;else;/*第第15行行*/else break;/*第第16行行*/printf(”%dn”,number);(19)将第将第16行改为行改为“;”后,程序运行时,输入后,程序运
24、行时,输入 A*0#,输出,输出 (19)。A、0 B、120 C、10 D、12(20)将第将第16行改为行改为“else break;”后,删除第后,删除第15行,程序运行时,输入行,程序运行时,输入1b0#,输出,输出(20)。A、10 B、12 C、276 D、1;试题6:阅读下列程序并回答问题,在每小题提供的若干可选答案中,挑选一个正确答案。(21)程序运行时,第程序运行时,第1行输出行输出 (21)。A、*B、*C、*D、*(22)程序运行时,第程序运行时,第2行输出行输出 (22)。A、*B、*C、*D、*(23)程序运行时,第程序运行时,第3行输出行输出 (23)。A、*B、*
25、C、*D、*(24)程序运行时,第程序运行时,第3行输出行输出 (24)。A、*B、*C、*D、*#include main()char*s2=”*”,”*”;while(*s1!=0)printf(”%sn”,s0+strlen(s1)-1);s1+;试题7:(1)定义函数fact(n)计算n的阶乘:n!=1*2*n,函数返回值类型是double。(2)定义函数cal(m,n)计算累加和:,函数返回值类型是double。(3)定义函数main(),输入正整数n,计算并输出下列算式的值。该算式中,每一项的分子是累加和,要求调用函数cal(m,n)计算 ;每一项的分母是阶乘,要求调用函数fact
26、(n)计算n!。y=1+#include double fact(int n)int i;double p=1;for(i=1;i=n;i+)p*=i;return(p);double cal(int m,int n)int i;double s=0;for(i=m;i=n;i+)s+=i;return(s);void main()int i,n;double y=0;printf(Please input n:n);scanf(%d,&n);for(i=1;i=n;i+)y+=cal(1,i)/fact(i);printf(The result is:%fn,y);文件操作n文件的打开n文件
27、的关闭n文件的读n文件的写文件操作的前提:定义文件指针,并使该指针指向要操作的文件。文件的打开与关闭n定义文件指针:nFILE*fp;/“FILE”一定大写!n打开文件:nfp=fopen(文件名,文件使用方式);n若不能打开该文件,则返回NULLn常用下面方法打开一个文件:if(fp=fopen(“file1”,“r”)=NULL)printf(“connot open this filen”);exit(0);n关闭文件:nfclose(fp);将指针与文件建立关联访问方式访问方式访问方式访问方式访问方式表示方式表示方式表示方式表示方式含义含义含义含义只读“r”从文本文件输入,前提文件必须
28、存在只写“w”向文本文件输出,文件若不存在则新建读写“r+”为读或写打开一个文本文件,前提必存在读写“w+”为读或写新建一个文本文件,若无则新建文件打开关闭举例n要想从a1.dat输入数据:FILE*fp;if(fp=fopen(a1.dat,r)=NULL)printf(“connot open this filen”);exit(0);fclose(fp);a1.dat:82,34,55通知编译系统要打开的文件名;当路径与C源文件一致时,可以只写文件名。通知编译系统打开文件的方式。以“r”方式打开的文件必须存在。fp指向a1.dat文件的读:fscanf函数n格式:nfscanf(文件指针
29、,格式字符串,输入表列);n例:nfscanf(fp,%d,%d,%d,&a,&b,&c);n编写程序,找出a1.dat文件三个数据中最大a1.dat:82,34,55a2.txt:82 3455n思考:若文件为a2.txt,则如何读取数据?n思考:如果不知道有几个数据怎么办,如何读取数据?n函数feof(fp):检查文件是否结束。遇文件结束返回非0,否则返回0。文件的写:fprintf函数n格式:nfprintf(文件指针,格式字符串,输出表列);n例:FILE*fp;fp=fopen(a3.dat,w);fprintf(fp,%dn,x);n编写程序,将100-200之间的素数找出来并保存在a3.dat文件中。101103107109113121127131137a3.dat