1、上海市计算机二级考试C语言模拟题计算机二级模拟考试试题D选D。Stract是剪切“abc”到a 的意思 此外B中的ai=0因为a是一个字符,所以,0作为ASCII码输入,因此是ai有0的意思,作为字符串的结尾A scanf(“格式说明”,存储地址);因为ch是一个数值,&ch是ch这个字符的地址,所以选AC。Switch里面,如果没有break,则执行除了满足本身的case之外,还要执行这句一下的语句直到switch语句结束。此外,60/10这个数,60是int类型,10 也是int类型,也就是说,两个相除还是int,故没有小数。Eg:69/10=6B。Include 或者include”st
2、dio.h”都是可以的inext也是存放地址的。也就是说,这道题的操作的结果就是要将head指向p,p-next指向一开始head所指向的位置,进而串成一个链表。A。21%9=3 3/float(2)=1.5转制,有一个浮点则得数为浮点,也就是带小数后面4/5=0 0*5=0 1.5+0=1.5D *代表取后面地址的数值。执行完while(*p!=3)后,p执政指向3(a1),即*p=3,故要指向7则指针需要移动两位。*(p+2)=7程序功能:函数f的功能是从字符串中删除所有的数字字符,并返回删除的个数;主程序调用函数f删除字符串str中的数字字符,并输出删除的字符数。源程序:#include
3、 #include int f(char s) int i=0; _1_; int count=0 while(si!=0) if(si=0&si=9) strcpy(s+i,s+i+1); count=count+1; /* count表示删除的数字字符数 */ else _2_; i+ return _3_; countvoid main() char str80; int m; printf(输入字符串:); gets(str); m=_4_;f(str) printf(删除数字后的字符串:); puts(str); printf(删除的数字字符个数:%d,_5_); m输入一行字符串,
4、分别统计字符串中各元音字母(AEIOU)的个数(不分大小写)。源程序:#include void main() char a80; int n5=0,0,0,0,0; /* 数组n存放各元音字母个数 */_1_; int igets(a); for(_2_; ai!=0; i+) i=0 switch(_3_) ai case A: case a: n0+; break; case E: case e: n1+; break; case I: case i: n2+; break; case O: case o: n3+; break; case U: case u: n4+; break;
5、for(i=0;i5;i+) printf(%dn,_4_); /* 输出各元音字母个数 */ ni 程序运行时输出如图所示的数字倒三角形 1234567 12345 123 1源程序:#include void main() int i,j; _1_; int k for(i=1;i=4;i+) k=1; for(j=1;j0;j-) printf(%d, k ); _2_; k+ putchar(_3_);n 3. 程序调试题3(X_2_3.C)调试要求:下列程序不能得到正确的结果,它包含3个错误,请按题中的功能要求,调试并修改该程序(在所修改语句后加/*modified*/字样的注释),
6、使其运行能得到正确的结果。将结果(包括X_2_3.C文件和X_2_3.EXE文件)保存到目录C:KS中。直接打开C:KS的X_2_3.C文件就可以了,还有 X_2_3.EXE 在编译完成后的Debug文件夹里面,其他编译文件记住删除,因为如果C:KS太大了,我们的试卷提交会失败的。此外/*modified*/一定要写呀!功能说明:函数fun分别统计字符串中大写字母和小写字母的个数,main()函数完成字符串的输入和统计数的输出。如输入:AAaaBBb123CCccccd则输出:upper=6,lower=8带错误原程序(见C:KSX_2_3.C):#include void fun(char
7、*s, int *a, int *b) while (*s!=0) /*modified*/ if(*s=A & *s=a &*s=z) /*modified*/ (*b)+; s+; main() char s100; int upper=0, lower=0; gets(s); fun(s,&upper,&lower); printf(nupper=%d,lower=%dn,upper,lower); /*modified*/ getch();四、编程题(2小题,共35分)1编程题1(X_4_1.C)编程要求:请按题中的功能要求,编写程序并能得到正确的结果。将结果(包括X_4_1.C文件和
8、X_4_1.EXE文件)保存到目录C:KS中。这里把程序定义的时候,文件名直接复制题目这个红的字体 X_4_1.C,这样定义就是c格式了,一般按我们原来的方式都是cpp格式,还有 X_4_2.EXE 在编译完成后的Debug文件夹里面,其他编译文件记住删除,因为如果C:KS太大了,我们的试卷提交会失败的。功能说明:编写程序,通过以下步骤验证一个正整数对是否符合特定的编码规则:(1)输入正整数a与b;(2)计算a的所有不同的质因子(包括1)之积,记为s;(3)如果s等于b,则通过验证,输出OK,否则输出Err。输出格式参见以下示例。运行示例1:输入:588 42输出:588: 1*2*3*7=4
9、2, OK说明:输入数为588(对应a)和42(对应b),588的质因子为1、2、3和7,其累乘结果为42(对应s),由s等于b(均为42),输出OK。运行示例2:输入:17 55输出:17: 1*17=17, Err(17!=55)说明:质因子为1和17,乘积仍为17,不等于b(55),输出Err,及不通过原因(17!=55)。#includevoid main() int a,s=1,i,j,k,b; scanf(%d%d,&a,&b); printf(%d: 1,a); for(i=2;i=a;i+) if (a%i=0) k=0; for(j=2;j=i/2;j+) if(i%j=0)
10、k+; if(k=0) s=s*i; printf(*%d,i); if(s=b) printf(=%d, OKn,s); else printf(=%d, Err(%d!=%d)n,s,s,b); getch();2编程题2(X_4_2.C)编程要求:请按题中的功能要求,编写程序并能得到正确的结果。将结果(包括X_4_2.C文件和X_4_2.EXE文件)保存到目录C:KS中。这里把程序定义的时候,文件名直接复制题目这个红的字体 X_4_2.C,这样定义就是c格式了,一般按我们原来的方式都是cpp格式,还有 X_4_2.EXE 在编译完成后的Debug文件夹里面,其他编译文件记住删除,因为如果
11、C:KS太大了,我们的试卷提交会失败的。功能说明:编写程序,实现以下成绩处理功能(输出格式参见示例):(1)输入n和n个成绩(成绩为浮点数类型,数组名记为a,假设1n50);(2)计算并输出成绩的累加和(记为sum)与平均成绩(记为ave),将ave的成绩归为A档,将ave的成绩归为B档;(3)分别统计A、B两档的人数,计算在总人数中的比率;(4)求出A档学生的最低分和B档学生的最高分,它们与平均成绩的差值;(5)将上述结果输出到文本文件X42.TXT中。运行示例:输入:9 55.5 99.5 50.0 90.0 88 59.5 48 60 78.0输出:Sum=628.5, Ave=69.8
12、A: 4,44.4% B: 5,55.6%MinA: 78.0,+8.2 MaxB: 60.0,-9.8运行后文件内容:Sum=628.5, Ave=69.8A: 4,44.4% B: 5,55.6%MinA: 78.0,+8.2 MaxB: 60.0,-9.8说明:输入的第1个数表示学生人数(n=9),接着输入的9个成绩中,累加和为628.5(所有小数均保留一位小数输出),平均分为69.8分;平均分以上(A档)有4人,占44.4%,平均分以下(B档)有5人,占55.6%;A档的最低分为78分,超出平均分8.2分,B档的最高分为60分,距离平均分还有9.8分的差距。#includevoid m
13、ain() int i,a=0,b=0; float mina=0,maxb=0,score50,n,sum=0,ave; FILE *p;/这个定义一定要放在main()里面的前面(就是强行将程序分成定义部分和程序部分,定义部分在前面,所以定义全部要在这里写清楚),不知道为什么,格式转换成C以后,定义在后面就出错 scanf(%f,&n); for (i=0;in;i+) scanf(%f,&scorei); sum=sum+scorei; ave=sum/n; for(i=0;i=ave) if (a=0) mina=scorei; else if(minascorei) mina=scorei; a+; else if (b=0) maxb=scorei; else if(maxbscorei) maxb=scorei; b+; if(p=fopen(X42.TXT,w)!=NULL) fprintf(p,Sum=%.1f, Ave=%.1fn,sum,ave); fprintf(p,A: %d,%.1f% B: %d,%.1f%n,a,a/n*100,b,b/n*100); fprintf(p,MinA: %.1f,+%.1f MaxB: %.1f,-%.1fn,mina,mina-ave,maxb,ave-maxb); fclose(p);
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1