c语言程序设计练习a.docx

上传人:b****3 文档编号:4210127 上传时间:2023-05-06 格式:DOCX 页数:22 大小:28.26KB
下载 相关 举报
c语言程序设计练习a.docx_第1页
第1页 / 共22页
c语言程序设计练习a.docx_第2页
第2页 / 共22页
c语言程序设计练习a.docx_第3页
第3页 / 共22页
c语言程序设计练习a.docx_第4页
第4页 / 共22页
c语言程序设计练习a.docx_第5页
第5页 / 共22页
c语言程序设计练习a.docx_第6页
第6页 / 共22页
c语言程序设计练习a.docx_第7页
第7页 / 共22页
c语言程序设计练习a.docx_第8页
第8页 / 共22页
c语言程序设计练习a.docx_第9页
第9页 / 共22页
c语言程序设计练习a.docx_第10页
第10页 / 共22页
c语言程序设计练习a.docx_第11页
第11页 / 共22页
c语言程序设计练习a.docx_第12页
第12页 / 共22页
c语言程序设计练习a.docx_第13页
第13页 / 共22页
c语言程序设计练习a.docx_第14页
第14页 / 共22页
c语言程序设计练习a.docx_第15页
第15页 / 共22页
c语言程序设计练习a.docx_第16页
第16页 / 共22页
c语言程序设计练习a.docx_第17页
第17页 / 共22页
c语言程序设计练习a.docx_第18页
第18页 / 共22页
c语言程序设计练习a.docx_第19页
第19页 / 共22页
c语言程序设计练习a.docx_第20页
第20页 / 共22页
亲,该文档总共22页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

c语言程序设计练习a.docx

《c语言程序设计练习a.docx》由会员分享,可在线阅读,更多相关《c语言程序设计练习a.docx(22页珍藏版)》请在冰点文库上搜索。

c语言程序设计练习a.docx

c语言程序设计练习a

1.C语言规定:

简单变量做实参时,它和对应形参之间的数据传递方式是(CC_______________________________________________________________________________________________________________________________)。

A、地址传递

B、由实参传给形参,再由形参传回给实参

C、单向值传递

D、由用户指定的传递方式

2.以下程序的输出结果是A

voidsub(floatx,float*y,float*z)

{*y=*y-1.0;

*z=*z+x;

}

main()

{floata=2.5,b=9.0,*pa,*pb;

pa=&a;pb=&b;

sub(b-a,pa,pb);

printf(“%f\n”,a);

}

A、10.500000

B、9.000000

C、1.500000

D、8.000000

3.以下叙述中不正确的是(C)。

A、以下是正确的宏定义#defineIBM_PC

B、在程序中凡是以#号开始的语句行都是预处理命令行

C、C程序在执行过程中对预处理命令行进行处理

D、预处理命令行都必须以#号开始

4.在定义构造数据类型时,不能(C)。

A、说明变量

B、说明存储类型

C、末尾不写分号

D、初始化

5.若变量已正确说明,要求用以下语句给a赋予3.12、给b赋予9.0,则正确的输入形式是

scanf(“a=%f,b=%f”,&a,&b);D

A、a=3.12,b=9

B、a=3.12b=9

C、3.129.0

D、a=3.12,b=9.0

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

A、strcpy(a,"abc");

B、inti;for(i=0;i<3;i++)a[i]=i+97;a[i]=0;

C、a="abc";

D、a[0]=0;strcat(a,"abc");

7.若a=1,b=2则a|b的值是(D)。

A、1

B、2

C、0

D、3

8.若变量已正确说明为float类型,要通过以下赋值语句给a赋予10、b赋予22、c赋予33,以下不正确的输入形式是A

scanf(“%f%f%f”,&a,&b,&c);

A、

B、

C、

D、

9.以下程序的输出结果是A

main()

{inta=5,b=6,c=7,d=8,m=2,n=2;

printf(“%d\n”,(m=a>b)&(n=c>d));

}

A、0

B、3

C、1

D、2

10.以下数据中,不正确的数值或字符常量是(B)。

A、50

B、c

C、0xaa

D、66

11.如果inta=2,b=3,c=0,下列描述正确的是D

A、a||(b=c)执行后b的值为0

B、a>b!

=c和a>(b!

=c)的执行顺序是一样的

C、a&&b>c的结果为假

D、!

a!

=(b!

=c)表达式的值为1

12.在下列程序段中,枚举变量c1,c2的值依次是(A)。

enumcolor{red,yellow,blue=4,green,white}c1,c2;

c1=yellow;c2=white;

printf("%d,%d\n",c1,c2);

A、1,6

B、1,4

C、2,6

D、2,5

13.以下程序的输出结果是B

main()

{intk=4,m=1,p;

p=func(k,m);

printf(“%d,”,p);

p=func(k,m);

printf(“%d\n”,p);

}

func(inta,intb)

{staticintm,i=2;

i+=m+1;

m=i+a+b;

return(m);

}

A、8,20

B、8,17

C、8,8

D、8,16

14.执行下面的程序段后,变量k中的值为D

intk=3,s[2];

s[0]=k;k=s[1]*10;

A、33

B、10

C、30

D、不定值

15.以下符合C语言语法的赋值表达式是(A)。

A、d=9+e,f=d+9

B、d=9+e+f=d+9

C、d=9+e++=d+7

D、d=9+e,e++,d+9

16.以下程序的输出结果是A

main()

{intx,i;

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

{x=i;

if(++x%2==0)

if(++x%3==0)

if(++x%7==0)

printf(“%d“,x);

}

printf(“\n”);

}

A、2870

B、3981

C、4284

D、2668

17.下面的程序片断所表示的数学函数关系是A

y=-1;

if(x!

=0)y=1;

if(x>0)y=1;

elsey=0;

A、

B、

C、

D、

18.若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是(D)。

A、函数调用可以出现在表达式中

B、函数调用可以作为独立的语句存在

C、函数调用可以作为一个函数的实参

D、函数调用可以作为一个函数的形参

19.下列叙述中正确的是(D)。

A、C语言的子程序有过程和函数两种

B、C语言编译时不检查语法

C、C语言的函数可以嵌套定义

D、C语言所有函数都是外部函数

20.若有下列定义,则对a数组元素地址的正确引用是(B)。

inta[5],*p=a;

A、&a

B、p+2

C、a++

D、&a[5]

21.以下程序中,若第一个printf语句输出的是194,则第二个printf语句的输出结果是D

main()

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

printf(“%x\n”,a);

printf(“%x\n”,a+9);

}

A、212

B、204

C、1a4

D、1a6

22.C语言中while和do-while循环的主要区别是(B)。

A、while的循环控制条件比do-while的循环控制条件更严格

B、do-while的循环体至少无条件执行一次

C、do-while的循环体不能是复合语句

D、do-while允许从外部转到循环体内

23.有以下程序

main()

{inti=10,j=1;

printf("%d,%d\n",i--,++j);

}

执行后输出结果是D

A、10,1

B、9,2

C、9,1

D、10,2

24.若已定义x为int类型变量,下列语句中说明指针变量p的正确语句是(A)。

A、int*p=&x;

B、intp=&x;

C、*p=*x;

D、int*p=x;

25.以下可作为函数fopen中第一个参数的正确格式是(C)。

A、c:

\user\text.txt

B、c:

user\text.txt

C、"c:

\\user\\text.txt"

D、"c:

\user\text.txt"

26.下列程序运行结果为:

C

#defineP3

#defineS(a)P*a*a

main()

{intar;

ar=S(3+5);

printf("\n%d",ar);

}

A、192

B、25

C、29

D、27

27.以下程序段的输出结果是D

charstr[]=“ABCD”,*p=str;

printf(“%d\n”,*(p+4));

A、不确定的值

B、字符D的地址

C、68

D、0

28.若int类型数据占两个字节,则下列语句的输出为(D)。

intk=-1;printf("%d,%u\n",k,k);

A、-1,32768

B、-1,-1

C、-1,32767

D、-1,65535

29.若有以下程序段,c3中的值是D

intc1=1,c2=2,c3;

c3=c1/c2;

A、0.5

B、1

C、1/2

D、0

30.应用缓冲文件系统对文件进行读写操作,关闭文件的函数名为(D)。

A、fwrite

B、close()

C、fread()

D、fclose()

 

1.如果有一个字符串,其中第十个字符为'\n',则此字符串的

有效字符为9个。

F

2.intmax(a,b);是正确的函数调用语句.F

3.设有数组定义:

chararray[]="hello";则数组array所占的空间为5.F

4.十进制数15的二进制数是1111.T

5.若有定义和语句:

inta[3][3]={{3,5},{8,9},{12,35}},i,sum=0;

for(i=0;i<3;i++)sum+=a[i][2-i];则sum=21.T

6.函数strlen("ASDFG\n")的值是7。

F

7.两个字符串中的字符个数相同时才能进行字符串大小的比较F

8.若有intⅰ=10,j=0;则执行完语句

if(j=0)ⅰ++;elseⅰ--;ⅰ的值为11。

F

9.函数调用语句:

func(rec1,rec2+rec3,(rec4,rec5));中,含有的实参个数是5.F

10.若定义:

inta=3,b=2,c=1;则关系表达式((a>b)==c)的值为"真"。

T

 

1./*------------------------------------------------

【程序设计】

--------------------------------------------------

功能:

将字符串中的大写字母转换为对应的小写字母,

其它字符不变。

------------------------------------------------*/

#include"stdio.h"

#include"string.h"

voidchange(charstr[])

{

/**********Begin**********/

inti;

for(i=0;str[i]!

='\0';i++)

if(str[i]>='A'&&str[i]<='Z')str[i]=str[i]+32;

/**********End**********/

}

voidTestFunc();

main()

{

charstr[40];

gets(str);

change(str);

puts(str);

TestFunc();

}

voidTestFunc()

{

FILE*IN,*OUT;

intn;

inti[200];

into[200];

IN=fopen("in.dat","r");

if(IN==NULL)

{

printf("ReadFileError");

}

OUT=fopen("out.dat","w");

if(OUT==NULL)

{printf("WriteFileError");

}

fscanf(IN,"%s",i);

change(i);

fprintf(OUT,"%s",i);

fclose(IN);

fclose(OUT);

}

【参考代码】

inti;

for(i=0;str[i]!

='\0';i++)

if(str[i]>='A'&&str[i]<='Z')str[i]=str[i]+32;

2./*------------------------------------------------

【程序设计】

--------------------------------------------------

功能:

fun函数的功能是,判断一个三位数是否"水仙花数"。

在main函数中从键盘输入一个三位数,并输出判断结果。

说明:

所谓"水仙花数"是指一3位数,其各位数字立方和

等于该数本身。

例如:

153是一个水仙花数,因为153=1+125+27。

------------------------------------------------*/

#include"stdio.h"

intfun(intn)

{

/**********Begin**********/

intbw,sw,gw;

bw=n/100;sw=(n-bw*100)/10;gw=n%10;

if(n==bw*bw*bw+sw*sw*sw+gw*gw*gw)return1;

elsereturn0;

/**********End**********/

}

voidTestFunc();

main()

{

intn,flag;

scanf("%d",&n);

flag=fun(n);

if(flag==1)

printf("%d是水仙花数\n",n);

else

printf("%d不是水仙花数\n",n);

TestFunc();

}

voidTestFunc()

{

FILE*IN,*OUT;

intiIN,i;

intiOUT;

IN=fopen("in.dat","r");

if(IN==NULL)

{

printf("PleaseVerifyTheCurrerntDir..ItMayBeChanged");

}

OUT=fopen("out.dat","w");

if(OUT==NULL)

{

printf("PleaseVerifyTheCurrentDir..ItMayBeChanged");

}

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

{

fscanf(IN,"%d",&iIN);

iOUT=fun(iIN);

fprintf(OUT,"%d\n",iOUT);

}

fclose(IN);

fclose(OUT);

}

 

【参考代码】

intbw,sw,gw;

bw=n/100;sw=(n-bw*100)/10;gw=n%10;

if(n==bw*bw*bw+sw*sw*sw+gw*gw*gw)return1;

elsereturn0;

1./*------------------------------------------------------

【程序改错】

--------------------------------------------------------

功能:

输入n,计算s=1+1+2+1+2+3+1+2+3+4+...+1+2+3+4+...+n

------------------------------------------------------*/

#include

voidmain()

{

/**********ERROR**********/

inti,s;p,n;inti,s,p,n;

printf("Entern:

\n");

/**********ERROR**********/

scanf("%d",n);scanf("%d",&n);

/**********ERROR**********/

for(s=p=0,i=1;i

s+=p+=i;

printf("S=%d\n",s);

}

改错1】正确

【学生答案】

inti,s,p,n;

【参考答案】

inti,s,p,n;

 

============================================================

【改错2】正确

【学生答案】

scanf("%d",&n);

【参考答案】

scanf("%d",&n);

 

============================================================

【改错3】错误

【学生答案】

for(s=p=0,i=0;i

【参考答案】

for(s=p=0,i=1;i<=n;i++)

 

============================================================

 

1./*-------------------------------------------------------

【程序填空】

---------------------------------------------------------

功能:

利用指向结构的指针编写求某年、某月、某日是第

几天的程序,其中年、月、日和年天数用结构表示。

-------------------------------------------------------*/

main()

{

/**********FILL**********/

struct_____date

{

inty,m,d,n;

/**********FILL**********/

}x_____;

intk,f,a[12]={31,28,31,30,31,30,31,31,30,31,30,31};

printf("date:

y,m,d=");

scanf("%d,%d,%d",&x.y,&x.m,&x.d);

f=x.y%4==0&&x.y%100!

=0||x.y%400==0;

/**********FILL**********/

a[1]+=f_____;

if(x.m<1||x.m>12||x.d<1||x.d>a[x.m-1])exit(0);

for(x.n=x.d,k=0;k

/**********FILL**********/

printf("n=%d\n",x.n_____);

}

【空1】正确

【学生答案】

structdate

【参考答案】

struct

 

============================================================

【空2】错误

【学生答案】

}_____;

【参考答案】

x

 

============================================================

【空3】错误

【学生答案】

a[1]+=_____;

【参考答案】

f

 

============================================================

【空4】错误

【学生答案】

printf("n=%d\n",_____);

【参考答案】

x.n

 

============================================================

/*-------------------------------------------------------

【程序填空】

---------------------------------------------------------

题目:

<<<题干内容>>>

给定程序的功能是调用fun函数建立班级通讯录。

通讯录中记录每位学生的编号、姓名和电话号码。

班级的人数和学生的信息从键盘读入,每个人的信息作为一个数据块写到名为myfile5.dat的二进制文件中。

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

注意:

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

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

------------------------------------------------------*/

#include

#include

#defineN5

typedefstruct

{intnum;

charname[10];

chartel[10];

}STYPE;

/**********FILL**********/

intfun(STYPE_____*std)

{

FILE*fp;

inti;

/**********FILL**********/

if((fp=fopen("myfile5.dat","wb"_____))==NULL)

return(0);

printf("\nOutputdatatofile!

\n");

for(i=0;i

fwrite(&std[i],sizeof(STYPE),1,fp);

/**********FILL**********/

fclose(fp)_____;

return

(1);

}

main()

{STYPEs[10]={{1,"aaaaa","111111"},{2,"bbbbb","222222"},{3,"ccccc","333333"},

{4,"ddddd","444444"},{5,"eeeee","555555"}};

intk;

k=fun(s);

if(k==1)

printf("Succeed!

");

else

printf("Fail!

");

}

【空1】错误

【学生答案】

intfun(_____*std)

【参考答案】

STYPE

 

============================================================

【空2】错误

【学生答案】

if((fp=fopen("myfile5.dat",_____))==NULL)

【参考答案】

"wb"

 

============================================================

【空3】错误

【学生答案】

_____;

【参考答案】

fclose(fp)

 

============================================================

 

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

当前位置:首页 > 党团工作 > 入党转正申请

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2