二级C语言程序设计7Word格式文档下载.docx

上传人:b****5 文档编号:18886469 上传时间:2023-01-02 格式:DOCX 页数:17 大小:21.19KB
下载 相关 举报
二级C语言程序设计7Word格式文档下载.docx_第1页
第1页 / 共17页
二级C语言程序设计7Word格式文档下载.docx_第2页
第2页 / 共17页
二级C语言程序设计7Word格式文档下载.docx_第3页
第3页 / 共17页
二级C语言程序设计7Word格式文档下载.docx_第4页
第4页 / 共17页
二级C语言程序设计7Word格式文档下载.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

二级C语言程序设计7Word格式文档下载.docx

《二级C语言程序设计7Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《二级C语言程序设计7Word格式文档下载.docx(17页珍藏版)》请在冰豆网上搜索。

二级C语言程序设计7Word格式文档下载.docx

∙B.a=sizeof(double);

∙C.a=d‖c;

∙D.a+1=a;

7.若有定义:

inta=1,b=2,c=3;

,则执行表达式(a=b+c)‖(++b)后a,b,c的值依次为

∙A.1,2,3

∙B.5,3,2

∙C.5,2,3

∙D.5,3,3

8.有以下程序

#include<stdio.h>

main()

{intk=10;

printf("

%4d,%o,%x/n"

k,k,k);

}

程序的运行结果是(□代表一个空格)

∙A.10,12,a

∙B.□□10,012,a

∙C.010,12,a

∙D.□□10,12,a

9.设有:

chars[5],c;

,则调用函数scanf能正确给s和c读入数据的是

∙A.scanf("

%s%c"

s,c);

∙B.scanf("

%d%c"

&

s,&

c);

∙C.scanf("

s,&

∙D.scanf("

10.设x,y,z均为实型变量,代数式

在C语言中的正确写法是

∙A.x/y*z

∙B.x%y%z

∙C.x/y/z

∙D.x*z/y

11.有以下程序

#include<stdio.h>

{inti,j,k,a=5,b=6;

i=(a==b)?

++a:

--b;

j=a++;

k=b;

printf("

%d,%d,%d/n"

i,j,k);

程序的运行结果是

∙A.7,6,5

∙B.5,5,5

∙C.7,5,5

∙D.5,6,5

B. 

12.设变量x为longint型并已正确赋值,以下表达式中能将x的百位上的数字提取出的是

∙A.x/10%100

∙B.x%10/100

∙C.x%100/10

∙D.x/100%10

13.有以下程序

{inti,j,x=0;

for(i=0;

i<2;

i++)

{x++;

for(j=0;

j<=3;

j++)

{if(j%2==0)continue;

x++;

}

x++;

x=%d/n"

x);

∙A.x=4

∙B.x=6

∙C.x=8

∙D.x=12

14.有以下程序

{intsum=0,x=5;

do{sum+=x;

}while(!

--x);

%d/n"

sum);

∙A.0

∙B.5

∙C.14

∙D.15

15.有以下程序

{charch='

Z'

;

ch=(ch-'

A'

+1)%26+'

putchar(ch);

∙A.Z

∙B.Y

∙C.B

∙D.A

16.以下函数的功能是:

计算a的n次方作为函数值返回

doublefun(doublea,intn)

{inti;

doubles=1.0;

for(i=1;

i<=n;

i++)s=______;

return8;

为实现上述功能,函数中下划线处应填入的是

∙A.s*i

∙B.s*a

∙C.s+i*i

∙D.s+a*a

17.在C语言程序中,下列说法正确的是

∙A.函数的定义可以嵌套,但函数的调用不可以嵌套

∙B.函数的定义不可以嵌套,但函数的调用可以嵌套

∙C.函数的定义和调用均不可以嵌套

∙D.函数的定义和调用均可以嵌套

18.若主函数中有定义语句:

inta[10],b[10],c;

,在主函数前定义的fun函数首部为:

voidfun(intx[]),则以下选项中错误的调用语句是

∙A.fun(b);

∙B.fun(&

c);

∙C.fun(&

a[3]);

∙D.fun(b[1]);

19.有以下程序

{intk,n=0;

charc,str[]="

teach"

for(k=0;

str[k];

k++)

{c=str[k];

switch(k)

{case1:

case3:

case5:

putchar(c);

%d"

++n);

break;

default:

putchar('

N'

);

∙A.Ne1NN

∙B.e1a2e3

∙C.Ne1Nc2N

∙D.Na1NNNN

20.以下叙述中错误的是

∙A.同一个数组中所有元素的类型相同

∙B.不可以跳过前面的数组元素,给后面的元素赋初值

∙C.定义语句:

inta[10]={0};

,给a数组中所有元素赋初值0

∙D.若有定义语句:

inta[4]={1,2,3,4,5};

,编译时将忽略多余的初值

21.执行以下程序段后,s的值为

inta[]={1,2,3,4,5,6,7,8,9},s=0,k;

k<8;

k+=2)s+=*(a+k);

∙A.13

∙B.16

∙C.17

∙D.45

22.有以下程序

#defineN4

voidfun(inta[][N],intb[])

i<N;

i++)b[i]=a[i][N-1-i];

{intx[N][N]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16},y[N],i;

fan(x,y);

i++)printf(:

%d,"

y[i]);

/n"

∙A.1,2,3,4,

∙B.3,6,9,12,

∙C.4,7,10,13,

∙D.1,5,9,13,

23.有以下程序

#include<string.h>

{charstr[]={"

Hello,Beijing"

};

%d,%d/n"

strlen(str),sizeof(str));

∙A.13,13

∙B.13,14

∙C.13,15

∙D.14,15

24.有以下程序

voidfun(char(*p)[6])

i<4;

i++)prinff("

%c"

p[i][i]);

{chars[6][6]={"

ABCDE"

"

abcde"

12345"

FGHIJ"

fghij"

54321"

fun(s);

∙A.Aa1F

∙B.Ab3I

∙C.ABCD

∙D.fghij

25.有以下程序

intfun(intn)

{if(n)returnfun(n-1)+n;

elsereturn0;

{printf("

fun(3));

∙A.4

∙C.6

∙D.7

26.有以下程序

#defineM5

#definef(x,y)x*y+M

{intk;

k=f(2,3)*f(2,3);

k);

∙A.22

∙B.41

∙C.100

∙D.121

27.有以下定义

struetdata

charc;

doubled;

}x;

以下叙述中错误的是

∙A.x的内存地址与x.i的内存地址相同

∙B.structdata是一个类型名

∙C.初始化时,可以对x的所有成员同时赋初值

∙D.成员i、c和d占用的是同一个存储空间

28.有以下程序

typedefstruet{charname[9];

charsex;

floatscore[2];

}STU;

voidf(STU*a)

{strcpy(a->name,"

Zhao"

a->sex='

m'

a->score[1]=90.0;

{STUc={"

Qian"

'

f'

95.0,92.0},*d=&

c;

f(d);

%s,%c,%2.0f,%2.0f/n"

d->name,c.sex,c.seore[0],c.score[1]);

∙A.Qian,f,95,92

∙B.Zhao,f,95,90

∙C.Zhao,m,95,90

∙D.Zhao,f,95,92

29.若有以下定义

struettt{charname[10];

}aa={"

aaaa"

F'

},*p=&

aa;

则错误的语句是

aa.sex);

∙B.aa.sex=getchar();

∙C.printf("

%c/n"

(*p).sex);

∙D.printf("

p->sex);

A. 

30.若有说明:

typedefstruet{inta;

}W;

则以下叙述正确的是

∙A.编译后系统为W分配5个字节

∙B.编译后系统为W分配6个字节

∙C.编译后系统为W分配8个字节

∙D.编译后系统不为W分配存储空间

二、{{B}}程序填空题{{/B}}(总题数:

2,分数:

20.00)

31.程序通过定义学生结构体变量,存储了学生的学号、姓名和3门课的成绩。

所有学生数据均以二进制方式输出到文件中。

函数fun的功能是重写形参filename所指文件中最后一个学生的数据,即用新的学生数据覆盖该学生原来的数据,其他学生的数据不变。

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:

源程序存放在考生文件夹下的BLANK1.C中。

不得增行或删行,也不得更改程序的结构!

源程序如下:

#include<stdio.h>#defineN5typedefstructstudent{longsno;

charname[10];

floatscore[3];

voidfun(char*filename,STUn){FILE*fp;

/*********found*********/fp=fopen(______,"

rb+"

/********found********/fseek(fp,-1L*sizeof(STU),______);

/********found********/fwrite(______,sizeof(STU),1,fp);

fclose(fp);

}main(){STUt[N]={{10001,"

MaChao"

91,92,77},{10002,"

CaoKai"

75,60,88},{10003,"

LiSi"

85,70,78},{10004,"

FangFang"

90,82,87},{10005,"

ZhangSan"

95,80,88}};

STUn={10006,"

ZhaoSi"

55,70,68},ss[N];

inti,j;

FILE*fp;

fp=fopen("

student,dat"

"

wb"

);

fwrite(t,sizeof(STU),N,fp);

fclose(fp);

rb"

fread(ss,sizeof(STU),N,fp);

fclose(fp);

printf("

/nTheoriginaldata:

/n/n"

for(j=0;

j<N;

j++)printf("

/nNo:

%ldName:

%-8sScores:

"

ss[j].sno,ss[j],name);

for(i=O;

i<3;

i++)printf("

%6.2f"

ss[j].score[i]);

fun("

student,dat"

n);

/nThedataaftermodifing:

fread(ss,sizeof(STU),N,fp);

%-8sScores:

for(i=0;

i++)printf("

ss[j].score[i]);

}}

10.00)

填空项1:

__________________ 

(正确答案:

filename或"

student.dat"

SEEK_END或2&

n)

32.给定程序中,函数fun的功能是:

找出100~999之间(含100和999)所有整数中各位上数字之和为x(x为一正整数)的整数,然后输出;

符合条件的整数个数作为函数值返回。

例如,当x值为5时,100~999之间各位上数字之和为5的整数有:

104、113、122、131、140、203、212、221、230、302、311、320、401、410、500。

共有15个。

当x值为27时,各位数字之和为27的整数是:

999。

只有1个。

#include<stdio.h>fun(intx){intn,s1,s2,s3,t;

n=0;

t=100;

/********found********/while(t<=______){/********found********/s1=t%10;

s2=(______)%10;

s3=t/100;

/********found********/if(s1+s2+s3==______){printf("

t);

n++;

}t++;

}returnn;

}main(){intx=-1;

while(x<0){printf("

Pleaseinput(x>0):

scanf("

x);

}printf("

/nTheresultis:

%d/n"

fun(x));

999t/10X)

三、{{B}}程序修改题{{/B}}(总题数:

33.给定程序MODI1.C中函数fun的功能是:

统计一个无符号整数中各位数字值为零的个数,通过形参传回主函数;

并把该整数中各位上最大的数字值作为函数值返回。

例如,若输入无符号整数30800,则数字值为零的个数为3,各位上数字值最大的是8。

请改正函数fun中指定部位的错误,使它能得出正确的结果。

不要改动main函数,不得增行或删行,也不得更改程序的结构!

#include<stdio.h>intfun(unsignedn,int*zero){intcount=0,max=0,t;

do{t=n%10;

/********found********/if(t=0)count++;

if(max<t)max=t;

n=n/10;

}while(n);

/********found********/zero=count;

returnmax;

}main(){unsignedn;

intzero,max;

/nInputn(unsigned):

n);

max=fun(n,&

zero);

/nTheresult:

max=%dzero=%d/n"

max,zero);

__________________________________________________________________________________________

正确答案:

(错误点1:

if(t==0)或if(!

t)或if(0==t)错误点2:

*zero=count;

34.给定程序MODI1.C中函数fun的功能是:

依次取出字符串中所有数字字符,形成新的字符串,并取代原字符串。

#include<stdio.h>voidfun(char*s){inti,j;

for(i=0,j=0;

sill!

='

/0'

i++)if(s[i]>='

0'

&

s[i]<='

9'

)/**********found**********/s[j]=s[i];

/**********found**********/s[j]="

/0"

main()charitem[80];

/nEnterastring:

);

gets(item);

/n/nThestringis:

%s"

/n"

item);

fun(item);

/n/nThestringofchangingis:

%s"

item);

s[j++]=s[i];

或*(s+j++)=*(s+i);

或s[j]=s[i],j++;

或s[j]=s

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

当前位置:首页 > 表格模板 > 书信模板

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

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