二级 C语言程序设计 复习及答案.docx

上传人:b****5 文档编号:7504129 上传时间:2023-01-24 格式:DOCX 页数:14 大小:20.11KB
下载 相关 举报
二级 C语言程序设计 复习及答案.docx_第1页
第1页 / 共14页
二级 C语言程序设计 复习及答案.docx_第2页
第2页 / 共14页
二级 C语言程序设计 复习及答案.docx_第3页
第3页 / 共14页
二级 C语言程序设计 复习及答案.docx_第4页
第4页 / 共14页
二级 C语言程序设计 复习及答案.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

二级 C语言程序设计 复习及答案.docx

《二级 C语言程序设计 复习及答案.docx》由会员分享,可在线阅读,更多相关《二级 C语言程序设计 复习及答案.docx(14页珍藏版)》请在冰豆网上搜索。

二级 C语言程序设计 复习及答案.docx

二级C语言程序设计复习及答案

二级C语言程序设计模拟练习

(本试卷考试时间120分钟)

一、单选题(本大题15道小题,每小题1分,共15分),从下面题目给出的A、B、C、D四个可供选择的答案中选择一个正确答案。

1.以下C程序中预处理命令写法正确的是:

A.#include(stdio.h)

B.#include[stdio.h]

C.#include{stdio.h}

D.#include

2.设有变量定义语句chara;则下面的赋值语句中()是正确的。

A.a='&';

B.a="&";

C.a=''';a=’\’’

D.a='16';

3.设有charch;与语句“ch=getchar();”等价的语句是:

A.printf("%c",ch);

B.printf("%c",&ch);

C.scanf("%c",ch);

D.scanf("%c",&ch);

4.inta=2,b=5;则表达式21%9/(float)a+4/b*b的运算结果为()。

A.2

B.1

C.1.5

D.0

5.能正确表示逻辑关系"a>=10或a<=0"的C语言表达式是()。

A.a>=10ora<=0

B.a<=0|a>=10

C.a<=0||a>=10

D.a>=10&&a<=0

6.设有intn=60;写出下列语句的运行结果

switch(n/10)

{

case6:

printf("@");break;

case5:

printf("#");

default:

printf("$");

}

A.@#$

B.#$

C.$

D.@

7.设有inti;以下语句中,循环次数为100次的语句是:

A.for(i=0;i<=100;i++)

B.for(i=0;i<99;i++)

C.for(i=1;i<99;i++)

D.for(i=0;i<100;i++)

8.C程序中,用于提前结束本次循环、进行下一次循环的语句是()。

A.break(结束全部循环)

B.continue

C.return

D.exit

9.若有数组定义语句:

intt[3][2];则t数组最后一个元素是:

A.t[3][2]

B.t[2][3]

C.t[2]

D.t[2][1]

10.设有定义inta[]={1,3,5,7,9},*p=a;while(*p!

=3)p++;结果为7的表达式是:

A.*(p+2)

B.*(p+3)

C.*p+2

D.*p+3

11.chara[10];不能将字符串"abc"存储在数组a中的是()。

A.strcpy(a,"abc");strcpy复制

B.a[0]=0;strcat(a,"abc");strcat连接

C.a="abc";

D.inti;for(i=0;i<3;i++)a[i]=i+97;a[i]=0;

12.设有下列函数原型和变量定义语句,则合法的函数调用语句是:

intfunc(inta[],intn);

inta[10],n,x;

A.func(a,n)=x;

B.x=func(a,n);

C.x=func(a[],n);

D.x=func(a[10],n);

13.若有以下定义,输出字母M的语句是:

structperson

{

charname[9];

intage;

};

structpersonst[10]=

{{"john",17},{"paul",19},{"Mary",18}};

A.printf("%c",st[2].name);

B.printf("%c",st[3].name[1]);

C.printf("%c",st[2].name[1]);

D.printf("%c",st[2].name[0]);

14.需要以写模式打开当前目录下一个名为myfile.txt的文本文件,下列打开文件正确的选项是:

A.fopen("myfile.txt","r");

B.fopen("myfile.txt","w");

C.fopen("myfile.txt","rb");

D.fopen("myfile.txt","wb");

15.假定建立了以下链表结构:

structnode{

charid;

structnode*next;

}*head,*p;

如下图所示:

指针p指向一个新结点,将新结点插入到链表成为头结点的两条C语言语句是【】

A.head=p->next;p=head;

B.p->data=head;head=p;

C.head=p->data;p=head;

D.p->next=head;head=p;

 

二、程序填空题(本大题3道小题,每空2.5分,共30分)。

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

1234567

12345

123

1

源程序:

#include

voidmain()

{inti,j;

____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);

____k++____;

}

putchar(____’\n’____);

}

}

 

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

源程序:

#include

voidmain()

{chara[80];

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

inti;

gets(a);

for(i=0;a[i]!

='\0';i++)

switch(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",n[i]);/*输出各元音字母个数*/

}

 

3.程序功能:

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

源程序:

#include

#include

intf(chars[])

{inti=0;

___intcount=0__;

while(s[i]!

='\0')

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

{

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

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

}

else

i++;

return___count_;

}

voidmain()

{charstr[80];

intm;

printf("输入字符串:

");

gets(str);

m=____f(str)___;

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

");

puts(str);

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

%d",____m___);

}

 

三、操作题

二、程序调试题(3小题,共20分)

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

调试要求:

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

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

\KS\中。

功能说明:

计算半径为1~n的圆的面积,仅打印超过50的圆面积。

如输入:

6

则输出:

r=4,square=50.265488

r=5,square=78.539825

r=6,square=113.097351

带错误原程序(见C:

\KS\X_2_1.C):

#include

main()

{

intr,n;

floatarea;

scanf("%d",&n);

for(r=1,r<=n;r++)

{

area=3.141593*r*r;

if(area<50.0)continue;

printf("r=%d,square=%d\n",r,area);

}

getch();

}

#include

main()

{

intr,n;

floatarea;

scanf("%d",&n);

for(r=1;r<=n;r++)/*modified*/

{

area=3.141593*r*r;

if(area<50.0)continue;

printf("r=%d,square=%f\n",r,area);/*modified*/

}

getch();

}

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

调试要求:

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

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

\KS\中。

功能说明:

将输入的十进制整数n通过函数DtoH转换为十六进制数,并将转换结果以字符串形式输出。

如输入:

79则输出:

4F

又输入:

1234则输出:

4D2

带错误原程序(见C:

\KS\X_2_2.C):

/*modified*/#include

intDtoH(intn,char*str)

{

inti,d;

for(i=0;n!

=0,i++)

{

d=n%16;

if(d>=10)

str[i]='0'+d;

else

str[i]='A'+d-10;

n/=16;

}

returni;

}

main()

{

inti,k,n;

charstr[80];

scanf("%d",&n);

k=DtoH(n,str);

for(i=k-1;i>=0;i--)

printf("%c",str(i));

getch();

}

#include

intDtoH(intn,char*str)

{

inti,d;

for(i=0;n!

=0;i++)/*modified*/

{

d=n%16;

if(d<10)/*modified*/

str[i]='0'+d;

else

str[i]='A'+d-10;

n/=16;

}

returni;

}

main()

{

inti,k,n;

charstr[80];

scanf("%d",&n);

k=DtoH(n,str);

for(i=k-1;i>=0;i--)

printf("%c",str[i]);/*modified*/

getch();

}

_

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

调试要求:

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

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

\KS\中。

功能说明:

函数fun分别统计字符串中大写字母和小写字母的个数,main()函数完成字符串的输入和统计数的输出。

如输入:

AAaaBBb123CCccccd

则输出:

upper=6,lower=8

带错误原程序(见C:

\KS\X_2_3.C):

#include

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

{

while(*s=='\0')

{

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

(*a)++;

if(*s>='a'||*s<='z')

(*b)++;

s++;

}

}

main()

{

chars[100];

intupper=0,lower=0;

gets(s);

fun(s,&upper,&lower);

printf("\nupper=%d,lower=%d\n",upper,&lower);

getch();

}

 

#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\中。

功能说明:

编写程序,通过以下步骤验证一个正整数对是否符合特定的编码规则:

(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

intprime(intn);

intmain(void)

{

inta,b,s=1,k[20],i,j=0;

for(i=0;i<20;i++)k[i]=0;

printf("Entera=");

scanf("%d",&a);

printf("Enterb=");

scanf("%d",&b);

for(i=2;i<=a;i++)

if(a%i==0&&prime(i)){k[j]=i;s=s*k[j];j++;}

printf("%d:

1",a);

for(i=0;i

printf("*%d",k[i]);

printf("=%d,",s);

if(s==b)

printf("OK");

else

printf("Err(%d!

=%d)",s,b);

}

intprime(intn)

{

inti;

for(i=2;i

if(n%i==0)return0;

if(i>=n)return1;

}

_

 

2.编程题2(X_4_2.C)

编程要求:

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

将结果(包括X_4_2.C文件和X_4_2.EXE文件)保存到目录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分的差距。

 

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

当前位置:首页 > 法律文书 > 调解书

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

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