上海市C语言二级考试模拟题Word文档下载推荐.docx

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

上海市C语言二级考试模拟题Word文档下载推荐.docx

《上海市C语言二级考试模拟题Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《上海市C语言二级考试模拟题Word文档下载推荐.docx(20页珍藏版)》请在冰豆网上搜索。

上海市C语言二级考试模拟题Word文档下载推荐.docx

源程序:

voidmain()

inti,n,ct=0,sum=0;

scanf("

%d"

&

n);

for(i=1;

i<

=n;

i++)

if(____

(1)_____)

{

printf("

%d\t"

i);

_____

(2)_______;

ct++;

if(___(3)______)

printf("

\n"

);

}

\nSum=%d\n"

sum);

}__

2)

以下程序输入10个整数到a数组,找到并输出其中最大的整数及其下标。

80290150520330-160-9902009

a[3]=520

#defineN10

intget_max_index(inta[],intn)

inti,k=0;

n;

if(____

(1)____)

k=i;

return______

(2)_____;

inti,k,a[N];

for(i=0;

N;

scanf("

a[i]);

k=_______(3)______;

a[%d]=%d\n"

k,a[k]);

}______

 

3)

以下程序从文件“student.txt”读取学生的学号、姓名、平时成绩和考试成绩,从键盘上输入平时成绩在总成绩中所占比重,计算每个学生的总成绩(四舍五入为整数)后输出到屏幕上。

文件的最后一行为0表示学生数据结束。

设文件student.txt的内容为

101Zhao9558

103Qian7581

105Sun9991

107Li8067

运行时键盘输入:

0.1

则屏幕输出:

101Zhao955862

103Qian758180

105Sun999192

107Li806768

voidcalc(FILE*fp,floatx)

intnum,score1,score2;

floatscore3;

charname[20];

while(!

feof(fp))

{/*文件还有未读数据时*/

num=0;

fscanf(fp,"

%d%s%d%d"

num,name,&

score1,&

score2);

if(num>

0)

{/*学生数据有效时*/

score3=score1*x+score2*(1-x);

/*计算总成绩*/

%3d%-7s%3d%3d%3d\n"

num,name,score1,

score2,______

(1)______);

/*总成绩四舍五入为整数*/

}

FILE*fp;

floatx;

fp=fopen("

student.txt"

"

r"

if(____

(2)____)/*如果文件打开失败*/

{

printf("

FileOpenError!

return;

%f"

x);

calc(____(3)____);

/*调用calc函数*/

fclose(____(4)____);

/*关闭文件*/

四、程序调试题(本大题2小题,第1题4分,第2题6分,共10分)

1.程序调试题1(B_3_1.C)

调试要求:

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

将结果(包括B_3_1.c文件和B_3_1.exe文件)保存到目录C:

\KS\中。

功能说明:

程序计算并输出1!

+2!

+……+n!

(1至n阶乘的累加和),其中函数fact(n)计算n!

的值,返回类型为double。

10

1!

+2!

+…+10!

=4037913

原程序(见C:

\KS\B_3_1.C):

doublefact(intn)

inti;

doubleresult=1;

result=result*i;

returnresult;

inti,n;

doublesum=0;

for(i=1;

sum+=fact(inti);

+...+%d!

=%.0lf\n"

n,sum);

2.程序调试题2(B_3_2.C)

下列程序有3处错误,请按题中的功能要求,在不改变程序结构(不增加、删除语句,不调整语句顺序)的情况下调试并修改该程序(在所修改语句后加/*******/字样的注释),使其运行能得到正确的结果。

将结果(包括B_3_2.c文件和B_3_2.exe文件)保存到目录C:

程序输入任意一行字符串(设字符数不大于20),提取该字符串中的数字字符并组成一个整数,输出该整数及其两倍的值。

abc12e3fgh4i

12342468

\KS\B_3_2.C):

inti,n=0;

charstr[80];

gets(str[80]);

str[i]!

='

\0'

;

if(str[i]>

=0&

&

str[i]<

=9)

n=n*10+str[i];

printf("

%d%d\n"

n,2*n);

五、编程题(本大题2小题,每题18分,共36分)

1.编程题1(B_5_1.C)

编程要求:

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

将结果(包括B_5_1.C文件和B_5_1.exe文件)保存到目录C:

输入5个整数,输出其中正整数的累加和与正整数的平均值,输入输出格式如以下示例。

10020-531

Sum=61,Average=20.3

2.编程题2(B_5_2.C)

将结果(包括B_5_2.C文件和B_5_2.exe文件)保存到目录C:

输入正整数m和n(设100≤m≤n≤999),输出m到n之间满足下列条件的三位数:

它的个位数的立方加十位数的平方再加上百位数等于该数的本身(例如135=1+3*3+5*5*5)。

135555

135175518

1,表达式strlen(“C2009”)的值是________

2,设inta=3,b=4,c=5;

则a*a+b*b==c*c的结果为_____________

3,设a=2,b=3,x=3.5,y=2.5,表达式(float)(a+b)/2+(int)x%2/4的值为____________

4,设a,b,c为整型变量,写出表达式:

当a比b、c都大时结果为真__________

5,

与下列语句等价的条件表达式语句是_______

switch(x!

=0)

case0:

y=1;

break;

case1:

y=-1;

6,

设有下述描述学生信息的结构定义及变量说明,则使学生变量s的出生年份为1990的赋值语句是___________

structdate

{intyear;

/*年*/

intmonth;

/*月*/

intday;

/*日*/

};

structstudent

{intno;

/*学号*/

char*name;

/*姓名*/

charsex;

/*性别*/

structdatebirth;

/*出生年月日*/

}s,

7,假定建立了下图所示的链表结构,指针p、q分别指向如图所示的结点,则将q所指结点从链表中删除的C语句是__________

1),下面程序实现的功能是打印n以内的水仙花数,水仙花数是指其本身的值等于每一位数字的立方和,例如:

153是一个水仙花数,153=1*1*1+5*5*5+3*3*3.

400

1153370371

intn,digit,k,m,s;

for(k=1;

____

(1)____;

k++)

s=0;

m=k;

while(m!

=0)

digit=____

(2)____;

s=s+digit*digit*digit;

m=m/10;

if(____(3)____)

%d"

s);

以下函数intsum(intx[],intnum)计算数组x前num个元素之和。

在主函数中,输入10个任意整数和下标index1、index2的值(设1<

=index1<

=index2<

=9),调用sum()函数计算index1元素到第index2元素的和,并输出结果。

13257964810

24

Sum=14

例示说明:

下标从2至4的元素为2、5、7,其累加为14

intsum(intx[],intnum)

{

inti,s=0;

s=____

(2)____;

returns;

inti,index1,index2,result;

intx[10];

10;

x[i]);

%d%d"

index1,&

index2);

result=sum(x+index1,____(3)____);

Sum=%d\n"

result);

3)以下程序从文件“student.txt”读取学生的学号、姓名、平时成绩和考试成绩(学生已按学号从小到大排序),从键盘上输入一个新学生的信息,按学号顺序将数据插入到学生表中,并生成新的文本文件“studentC.txt”。

104Chen8090

则生成新文件studentC.txt的内容为:

voidmain()

FILE*fp1,*fp2;

intfnum,fscore1,fscore2;

charfname[20];

intflag;

fp1=fopen("

____

(1)____);

fp2=fopen("

studentC.txt"

w"

if(fp1==NULL||fp2==NULL)

_______

(2)______;

while

(1)

fnum=0;

fscanf(fp1,"

fnum,fname,&

fscore1,&

fscore2);

if(fnum==0)

break;

if(flag==1&

num<

=fnum)

flag=0;

fprintf(fp2,"

%3d%-7s%3d%3d\n"

num,name,

score1,score2);

fprintf(fp2,"

fnum,fname,

fscore1,fscore2);

num,name,score1,score2);

fprintf(fp2,____(4)____);

fclose(fp1);

fclose(fp2);

四、程序调试题(本大题2小题,第1题4分,第2题6分,共10分)

1.程序调试题1(C_3_1.C)

将结果(包括C_3_1.c文件和C_3_1.exe文件)保存到目录C:

程序输入一个正整数并因式分解,输出分解等式。

60

60=1*2*2*3*5

\KS\C_3_1.C):

intn,i;

%d=1"

n);

for(i=2;

i<

=n;

{

if(n%i=0)

{

*%d"

n/i;

else

i++;

2.程序调试题2(C_3_2.C)

将结果(包括C_3_2.c文件和C_3_2.exe文件)保存到目录C:

以下程序中函数str_to_upper将字符串中的小写字母转换为大写字母,主函数调用此函数及输入输出数据,用户通过键盘输入计算所需的数据。

Helloworld.

HELLOWORLD.

\KS\C_3_2.C):

voidstr_to_upper(char*s)

while(*s=='

if(*s>

a'

||*s<

z'

*s=*s-'

A'

+'

s++;

gets(str);

str_to_upper(str);

puts(str);

1.编程题1(C_5_1.C)

将结果(包括C_5_1.C文件和C_5_1.exe文件)保存到目录C:

键盘输入5个整数,输出其中同时为3和5倍数的正整数。

18305-1575

3075

2.编程题2(C_5_2.C)

将结果(包括C_5_2.C文件和C_5_2.exe文件)保存到目录C:

编写程序计算并输出:

1+12+123+1234+……的前n(设0<

n<

10)项的和,n从键盘输入。

例如输入:

3,则输出:

136

又如输入:

6,则输出:

137171

1,在C语言中,char类型的数据所占存储空间的字节数为_____,能够测试数据所占存储空间字节数的运算符是__________

2,设有定义charx;

写出判定x是否为大写字母的表达式________

3变量value已被定义为float型,对其小数部分进行四舍五入的C表达式为_________

4设有以下程序段,则执行完该程序段后,变量i的值是________

inti;

chars[]="

Hello!

"

*p=s;

for(i=0;

*(p+i)!

i++);

___

5阅读以下程序并写出运行结果___________

intk,n=0;

k<

=1000;

if(k%3==0&

k%5==0)

k);

n++;

if(n==3)break;

}____

6一个C程序总是从_______函数开始执行的__

7假定建立了如下图所示的链表结构,指针p、q分别指向相邻的2个结点,则将r所指结点插入p、q所指结点之间的C语句是___________;

和____________;

1)以下程序输入n和n个大于1的正整数,输出其中素数。

51993113715

191137

先输入n为5,再输入5个正整数,输出5个整数中的素数

intn,a,i,j,ct;

______

(2)______;

a);

for(j=2;

j<

a;

j++)

if(____(3)____)

ct++;

if(ct==0)

a);

2)以下程序输入一个10进制整数,转换为16进制,计算16进制的各个位数,并从高位到低位依次输出。

687

2AF

10进制687等于16进制2AF,输出时2、A、F中间包含空格

inta[10],i,n;

n>

0;

a[i]=____

(1)____;

n/=16;

for(i--;

____

(2)____;

____(3)____)

%X"

a[i]);

_____

3)以下程序从文件“student.txt”读取学生的学号、姓名、平时成绩和考试成绩,再从键盘上输入一个成绩,将所有考试成绩达到或超过该成绩的学生数据写到新的文本文件“studentD.txt”。

80

则生成新文件studentD.txt的内容为:

1.程序调试题1(D_3_1.C)

将结果(包括D_3_1.c文件和D_3_1.exe文

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

当前位置:首页 > 自然科学 > 生物学

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

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