上海市计算机二级考试C语言模拟题.docx

上传人:b****6 文档编号:5088634 上传时间:2022-12-13 格式:DOCX 页数:17 大小:374.82KB
下载 相关 举报
上海市计算机二级考试C语言模拟题.docx_第1页
第1页 / 共17页
上海市计算机二级考试C语言模拟题.docx_第2页
第2页 / 共17页
上海市计算机二级考试C语言模拟题.docx_第3页
第3页 / 共17页
上海市计算机二级考试C语言模拟题.docx_第4页
第4页 / 共17页
上海市计算机二级考试C语言模拟题.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

上海市计算机二级考试C语言模拟题.docx

《上海市计算机二级考试C语言模拟题.docx》由会员分享,可在线阅读,更多相关《上海市计算机二级考试C语言模拟题.docx(17页珍藏版)》请在冰豆网上搜索。

上海市计算机二级考试C语言模拟题.docx

上海市计算机二级考试C语言模拟题

计算机二级模拟考试试题

D

选D。

Stract是剪切“abc”到a的意思此外B中的a[i]=0因为a是一个字符,所以,0作为ASCII码输入,因此是a[i]有’\0’的意思,作为字符串的结尾

Ascanf(“格式说明”,存储地址);因为ch是一个数值,&ch是ch这个字符的地址,所以选A

C。

Switch里面,如果没有break,则执行除了满足本身的case之外,还要执行这句一下的语句直到switch语句结束。

此外,60/10这个数,60是int类型,10也是int类型,也就是说,两个相除还是int,故没有小数。

Eg:

69/10=6

B。

Include或者include”stdio.h”都是可以的

i<100则i=100这次不执行,遇到这种问题,把100换成1看看多少次依次类推就可以了

A.Fopen中”w”是为输出打开一个文本文件,”wb”为输出打开一个二进制文件,”r”输入打开一个文本文件,”rb”为输入打开一个二进制文件

B.Continue结束本次循环,而break,结束整个循环,exit退出程序,return一般用于函数调用,返回一个值

D。

intfunc(inta[],intn)中,inta[]表示要输入一个数组,而在数组中,a表示数组的首地址。

并且,a[10]这个答案,已经超出了表示范围,

C。

因为要使a里面存’符号需要写a=’’’’;也就是要注明两次’符号才可以。

而16本身是个字符串,加入单引号也是不对的。

字符串需要用“”指明,而字符要用’’指明

D。

数组中定义n个,而实际计数是0~n-1

C。

同上

C。

指针,head,p,可以视为指向一个地址的指针,里面存放的是地址。

而p->next也是存放地址的。

也就是说,这道题的操作的结果就是要将head指向p,p->next指向一开始head所指向的位置,进而串成一个链表。

A。

21%9=33/float

(2)=1.5[转制,有一个浮点则得数为浮点,也就是带小数]

后面4/5=00*5=01.5+0=1.5

D*代表取后面地址的数值。

执行完while(*p!

=3)后,p执政指向3(a[1]),即*p=3,故要指向7则指针需要移动两位。

*(p+2)=7

程序功能:

函数f的功能是从字符串中删除所有的数字字符,并返回删除的个数;主程序调用函数f删除字符串str中的数字字符,并输出删除的字符数。

源程序:

#include

#include

intf(chars[])

{inti=0;

____1____;intcount=0

while(s[i]!

='\0')

if(s[i]>='0'&&s[i]<='9')

{

strcpy(s+i,s+i+1);

count=count+1;/*count表示删除的数字字符数*/

}

else

____2____;i++

return____3____;count

}

voidmain()

{charstr[80];

intm;

printf("输入字符串:

");

gets(str);

m=____4____;f(str)

printf("删除数字后的字符串:

");

puts(str);

printf("删除的数字字符个数:

%d",____5____);m

}

 

输入一行字符串,分别统计字符串中各元音字母(AEIOU)的个数(不分大小写)。

源程序:

#include

voidmain()

{chara[80];

intn[5]={0,0,0,0,0};/*数组n存放各元音字母个数*/

____1____;inti

gets(a);

for(____2____;a[i]!

='\0';i++)i=0

switch(____3____)a[i]

{

case'A':

case'a':

n[0]++;break;

case'E':

case'e':

n[1]++;break;

case'I':

case'i':

n[2]++;break;

case'O':

case'o':

n[3]++;break;

case'U':

case'u':

n[4]++;break;

}

for(i=0;i<5;i++)

printf("%d\n",____4____);/*输出各元音字母个数*/n[i]

}

 

程序运行时输出如图所示的数字倒三角形

1234567

12345

123

1

源程序:

#include

voidmain()

{inti,j;

____1____;intk

for(i=1;i<=4;i++)

{k=1;

for(j=1;j

putchar('');/*输出空格*/

for(j=9-2*i;j>0;j--)

{

printf("%d",k);

____2____;k++

}

putchar(____3____);'\n'

}

}

3.程序调试题3(X_2_3.C)

调试要求:

下列程序不能得到正确的结果,它包含3个错误,请按题中的功能要求,调试并修改该程序(在所修改语句后加/*modified*/字样的注释),使其运行能得到正确的结果。

将结果(包括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:

\KS\X_2_3.C):

#include

voidfun(char*s,int*a,int*b)

{

while(*s!

='\0')/*modified*/

{

if(*s>='A'&&*s<='Z')

(*a)++;

if(*s>='a'&&*s<='z')/*modified*/

(*b)++;

s++;

}

}

main()

{

chars[100];

intupper=0,lower=0;

gets(s);

fun(s,&upper,&lower);

printf("\nupper=%d,lower=%d\n",upper,lower);/*modified*/

getch();

}

四、编程题(2小题,共35分)

1.编程题1(X_4_1.C)

编程要求:

请按题中的功能要求,编写程序并能得到正确的结果。

将结果(包括X_4_1.C文件和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:

输入:

58842

输出:

588:

1*2*3*7=42,OK

说明:

输入数为588(对应a)和42(对应b),588的质因子为1、2、3和7,其累乘结果为42(对应s),由s等于b(均为42),输出OK。

运行示例2:

输入:

1755

输出:

17:

1*17=17,Err(17!

=55)

说明:

质因子为1和17,乘积仍为17,不等于b(55),输出Err,及不通过原因"(17!

=55)"。

#include

voidmain()

{

inta,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)k++;

}

if(k==0)

{

s=s*i;

printf("*%d",i);

}

}

}

if(s==b)

printf("=%d,OK\n",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文件夹里面,其他编译文件记住删除,因为如果C:

\KS\太大了,我们的试卷提交会失败的。

功能说明:

编写程序,实现以下成绩处理功能(输出格式参见示例):

(1)输入n和n个成绩(成绩为浮点数类型,数组名记为a,假设1≤n≤50);

(2)计算并输出成绩的累加和(记为sum)与平均成绩(记为ave),将≥ave的成绩归为A档,将<ave的成绩归为B档;

(3)分别统计A、B两档的人数,计算在总人数中的比率;

(4)求出A档学生的最低分和B档学生的最高分,它们与平均成绩的差值;

(5)将上述结果输出到文本文件"X42.TXT"中。

运行示例:

输入:

955.599.550.090.08859.5486078.0

输出:

Sum=628.5,Ave=69.8

A:

4,44.4%B:

5,55.6%

MinA:

78.0,+8.2MaxB:

60.0,-9.8

运行后文件内容:

Sum=628.5,Ave=69.8

A:

4,44.4%B:

5,55.6%

MinA:

78.0,+8.2MaxB:

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分的差距。

#include

voidmain()

{

inti,a=0,b=0;

floatmina=0,maxb=0,score[50],n,sum=0,ave;

FILE*p;//这个定义一定要放在main()里面的前面(就是强行将程序分成定义部分和程序部分,定义部分在前面,所以定义全部要在这里写清楚),不知道为什么,格式转换成C以后,定义在后面就出错

scanf("%f",&n);

for(i=0;i

{

scanf("%f",&score[i]);

sum=sum+score[i];

}

ave=sum/n;

for(i=0;i

{

if(score[i]>=ave)

{

if(a==0)mina=score[i];

else

if(mina>score[i])mina=score[i];

a++;

}

else

{

if(b==0)maxb=score[i];

else

if(maxb

b++;

}

}

if((p=fopen("X42.TXT","w"))!

=NULL)

{

fprintf(p,"Sum=%.1f,Ave=%.1f\n",sum,ave);

fprintf(p,"A:

%d,%.1f%%B:

%d,%.1f%%\n",a,a/n*100,b,b/n*100);

fprintf(p,"MinA:

%.1f,+%.1fMaxB:

%.1f,-%.1f\n",mina,mina-ave,maxb,ave-maxb);

}

fclose(p);

}

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 高等教育 > 军事

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1