语言程序设计试卷大汇总及答案_第1页
语言程序设计试卷大汇总及答案_第2页
语言程序设计试卷大汇总及答案_第3页
语言程序设计试卷大汇总及答案_第4页
语言程序设计试卷大汇总及答案_第5页
已阅读5页,还剩142页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

C语言程序设计一

一、选择题

1.下面对C语言字符数组的描述中错误的是O

A.字符数组可以存放字符串

B.字符数组的字符串可以整体输入、输出

C.可以在赋值语句中通过赋值运算符“二”对字符数组整体赋值

D.不可以用关系运算符对字符数组中的字符串进行比较

2.在宏定义#definePI3.14159中,用宏名PI代替一个。

A.常量B.单精度数C.双精度数D.字符串

3.以下有关宏替换的叙述不正确的是o

A.宏替换不占用运行时间B,宏名无类型

C.宏替换只是字符替换D.宏名必须用大写字母表示

4.若有语句intw[5]={-4,6,0,-l,9};

则以下说法错误的是O

A.w是地址的概念B.编译后,数组w占用连续的储存空

C.表达式w+3是地址的概念D.表达式*(w+l)的值为-4

5.变量的指针,其含义是指该变量的。

A.值B.地址C.名称D.一个标志

6.若有语句chars[]="WELCOME";

为得到字符串中的字符'w',如下的引用方法是错误的。

A.s[0]B.*(s+l)C.*sD.*(s+0)

7.若有语句int*point,a=4;

point=&a;

下面均代表地址的一组选项是O

A.a,point,*&aB.&*a,&a,*point

C.*&point,*point,&aD.&a,&*point,point

8.若有赋值语句x=2,y=3;,则x&y的位运算结果是。

A.0B.2C.3D.5

9.用feof(fp)函数判断文件是否结束时,如果文件结束,则函数值为

A.1B.'\0'C.0D.NULL

10.对于库函数fread(buffer,size,count,fp),关于参数buffer的描述正确的

EL

7Zo

A.buffer是一个整型变量,代表要读入的数据项总和

B.buffer是一个文件指针,指向要读的文件

C.buffer是一个指向某连续存储空间的指针

D.buffer是fread()函数执行成功的返回值

二、填空题

1.在C语言中供用户使用的内存可分为三部分,全局变量应放在—

中。

2.已知A的ASCII码是65,则printf("%c”66)的执行结果为°

3.若有以下定义和语句,则通过指针p引用值为98的数组元素的表达

是=O

intw[l0]={23,54,10,33,47,98,72,80,61},*p;

p=w;

4.宏展开是在—时进行的。

5.若用数组名作为函数调用的实参,则传递给形参的是0

6.若有以下定义,则引用变量stu中的num成员项的引用方式为。

struct

{intnum;

charname[10];

intscore;}stu;

7.在C语言中对文件的存取是以为单位的。

8.若fopenO函数执行不成功,则返回值为o

9.如果文件没结束,feof()函数的返回值为o

10.在对文件进行操作的过程中,若要求文件的位置指针回到文件的开

头,应当调用的库函数是O

三、阅读程序,写出程序的运行结果

1.f(inta[])

{inti=0;

while(a[i]<=10)

{printf("%d",a[i]);

i++;}

)

main()

{inta[]={l,5,10,9,H,7);

f(a+l);

)

输出的结果是O

2.mainQ

{char*s="121”;

intk=O,a=O,b=O;

do

{k++;

if(k%2==0){a=a+s[k]-'0';continue;}

b=b+s[k]-,0,;a=a+s[k]-<0,;

}

while(s[k+l]);

printf("k=%d,a=%d,b=%d\n",k,a,b);

)

输出的结果是o

3.mainQ

{int**pp,*p,a=10,b=20;

pp=&p;

p—

p=&b;

printf("%d,%d",*p,**pp);

}

输出的结果是。

4.#defineDOUBLE(r)r*r

mainQ

{intx=l,y=2,t;

t=DOUBLE(x+y);

printf("%d\n”,t);

}

输出的结果是O

5.mainQ

{intx[尸{0,l,2,3,4,5};

intsj,*p;

s=0;

p=&x[0];

for(i=l;i<6;i+=2)

s+=*(p+i);

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

}

输出的结果是o

6.#include“stdio.h"

mainQ

{union{longa;

intb;

charc;

}m;

printf("%d\n”,sizeof(m));

}

输出的结果是o

7.#include“stdio.h"

cp(char*s,char*t)

{inti=0;

while(电!='\0')

{s[i]=t[i];i++;}

S『]='\0';}

mainQ

{chara[20],b[10];

scanf("%s»,b);

cp(a,b);

puts(a);

)

输入:dcba

输出的结果是—O

8.structks

{inta;

int*b;

}s[4],*p;

main()

{intn=lj;

printf("\n”);

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

{s[i].a=n;

s[i].b=&s[i].a;

n=n+2;}

p=&s[O];

p++;

printf("%d,%d\n”,(++p)-->a,(p++)-->a);/*提示:参数从右向

左计算*/

}

输出的结果是O

四、完善程序,在程序的一处,填入正确的内容,使其完整正确

1.下面程序通过函数调用,在一维数组中查找最大值,并输出之。请填

空。

intmax_in_array(inta[],intn)

{

inti;

inttemp=a[O];

for(i=l;i<n;i++)

if(a[i]>temp)

return(temp);

}

mainQ

{

intt;

intw[5]={-2,10,1,5,3};

t=max__in_array(w55);

printf(n%d\);

}

2.count函数的功能是统计一个字符串中英文字母(letter)和其它字符

(other)的个数。

count(charstr。,intMetter,int*other)

{inti;

for(i=0;str[i]!='\0';i++)

if(str[i]>='a'&&stt[i]<='z'||str[i]>='A'&&str[i]<='Z')

else

(*other)++;

}

main。

{chara[20];

intletter=0,other=0;

gets(a);

count();

printf("小写字母为:%d,大写字母为:%d.'letter,other);

}

3.下面程序是对输入的两个整数按大小顺序输出,其中swap。函数的功

能是交换两个数。

s*pl,int*p2)

{intp;

p=*pl;

*P2=P;

}

main()

{inta,b;

int*ppl=&a,*pp2=&b;

scanf("%d,%d”,&a,&b);

if(a<b)swap();/*或写&a,&b*/

printf("\n%d,%d",a,b);

)

4.下面程序average函数的功能是计算10名学生1门课成绩的平均分。

floataverage(float*array)

{inti;floataver,sum=array[0];

for(i=l;i<10;i++)sum+=array[i];

aver=sum/10;

main()

{floatscore[10],aver;

inti;

for(i=0;ivlO;i++)scanf("%f”,&scorc[i]);

aver=;

printf(“平均分为:%f",aver);

)

5.下面程序将一个磁盘文件上的信息复制到另一个磁盘文件上去,请填

空。

#include"stdio.h"

mainQ

{

*in5*out;

charin],out];

printf(HEnterthein:\nn);

scanf("%sn,infile);

printf(nEntertheout:\nn);

scanf(n%s,\outfile);

if((in=fopen(infile;,rn))==NULL)

{printf(nCannotopeninfile\nH);exit(O);}

if((out=fopen(outfile;,wH))==NULL)

{printf(nCannotopenoutfile\nH);exit(0);}

while(!feof(in))fputc(?out);

fclose(in);

fclose(out);

}

五、程序改错,以下每题都有两个错,写出有错误的程序全行及改正后

的程序全行。

1.max。函数的功能是求三个数中的最大数。

max(foata,floatb,floatc)

{floatm;

m=a>b?a:b;

m=b>c?b:c;

return(m);}

mainQ

{floata,b,c,m;

scanf("%f,%f,%P,&a,&b,&c);

m=max(a,b,c);

printf("\n最大数为:

}

2.下面程序功能是:将从键盘输入的英文字符串变成大写的,然后输出

该字符串。

#include"stdio.h"

mainQ

{inti=0;

charp[100];

gets(p);

while(p[i]!=\0)

{

if(p[i]>='a'&&p[i]<='z')

p[i]=p[i]-32;

i++;)

puts(*p);

}

3.下面程序的功能是实现字符串的连接。例如,若字符串

a[80]="HELLO!”,字符串b"0]="Jone”,则连接后,字符串a成为

“HELLCHJone”。

voidjoin(char*a,*b)

{inti,j;

char*pl,*p2;

pl二a;p2=b;

while(*pl)pl++;

while(*p2)

*pl=*p2;

pl++;p2++;

}

*pl='\O';

}

mainQ

{char*x="HELLO!";

char*y="jone";

join(x,&y);

puts(x);

}

4.下面程序将一个磁盘文件上的信息复制到另一个磁盘文件上去。

#include"stdio.h”

mainQ

{file*in,*out;

charch,in],out];

scanf(”%s”,infile);/*输入要复制的文件名*/

scanf(n%sH,outfile);

if((in=fopen(inflle,W))二二NULL)

{printf(HCannotopeninfile\nH);exit(O);}

if((out=fopen(outfile;!wn))==NULL)

{printf(HCannotopenoutfile\nn);exit(O);}

while(!feof(in))

fputc(out,fgetc(in));

fclose(in);

fclose(out);

}

5.下面程序的功能是:用命令行方式显示一个文本文件的内容。

#include"stdio.h"

main(intargc,char*argv[])

{FILE*fp;

charline[81];

if((fp=fopen("argv[l]"Jr")尸二NULL)

{printf("文件未找到.”);

exit(O);

/

while(fgets(line,8O,fp)!=NULL)

printf(n%snJine);

fclose(*fp);

}

六、程序设计

1.将一个十进制的正整数转换成二进制数并输出。

2.从键盘输入一行字符串(<20),按ASCII码值由小到大的顺序排

序存放,并输出排序后的字符串。要求:在主函数中实现数据的

输入与输出,在名为sort的函数中实现排序。

3.有两个磁盘文件,各自存放若干已排好序的字符(如al.dat中存放

"abort",a2.dat中存放"boy"),要求将两个文件合并,合并后仍然

保持有序(如"abboorty"),存放在a3.dat文件中。

C语言程序设计二

一、单项选择题,答案不写入答题栏的一律不得分!(每题1.5分,共52.5分)

1、结构化程序设计的3种结构是。

A)顺序结构、选择结构、转移结构B)分支结构、等价结构、循环结构

C)多分支结构、赋值结构、等价结构D)顺序结构、选择结构、循环结构

2、以下叙述中正确的是o

A)C语言比其他语言高级

B)C语言可以不用编译就能被计算机识别执行

C)C语言以接近英语国家的自然语言和数学语言作为语言的表达形式

D)C语言出现的最晚,具有其他语言的一切优点

3、C语言中最简单的数据类型包括。

A)整型、实型、逻辑型B)整型、实型、字符型

C)整型、字符型、逻辑型D)字符型、实型、逻辑型

4、若变量已正确定义并赋值,以下符合C语言语法的表达式是o

A)a:=b+lB)a=b=c+2C)intl8.5%3D)a=a+7=c+b

5、若变量aj已正确定义,且i已正确赋值,合法的语句是。

A)a==1B)++i;C)a=a++=5;D)a=int(i);

6、已知:

intt=0;

while(t=l){...}

则以下叙述正确的是。

A)循环控制表达式的值为0B)循环控制表达式的值为1

C)循环控制表达式不合法D)以上说法都不对

7、若变量已正确说明为float型,要通过语句scanf("",&a,&b,&c);给a赋予10.0,b

赋予22.0,c赋予33.0,下列不正确的输入形式是。

A)10<回车>22〈回车>33<回车>B)10.(),22.0,33.0<回车〉

C)10.0V回车>22.033.0v回车,D)1022〈回车>33<回车,

8、有如下程序:

main()

{

intx=l,a=0,b=0;

switch(x)

(

case0:b++;

case1:a++;

case2:a++;b++;

)

printf(Ha=%d,b=%d\nn,a,b);)

该程序的输出结果是

A)a=2,b=lB)a=l,b=lC)a=l,b=0D)a=2,b=2

9、有以下程序

main()

{inti=l,i=l,k=2;

if((j++||k++)&&i++)

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

)

执行后输出结果是。

A)1,1,2

B)2,2,1

C)2,2,2

D)2,2,3

10、有如下程序

main()

{floatx=2.0,y;

if(x<0.0)y=0.0;

elseif(x<10.0)y=1.0/x;

elsey=1.0;

printf("%f\n",y);}

该程序的输出结果是。

A)0.000000

B)0.250000

C)0.50000()

D)1.000000

11、有如下程序:

main()

{intn=9;

while(n>6)

{n-;

printf("%d",n);

}

)

该程序的输出结果是。

A)987B)876C)8765D)9876

12、在下列选项中,没有构成死循环的是

A)inti=l()0;

while(1)

{i=i%100+l;

if(i>100)break;

}

B)for(;;);

C)intk=10000;

do{

k++;

)

while(k>10000);

D)ints=36;

while(s)--s;

13、设intx=l,y=l;表达式(!x||y-)的值是

A)0B)1C)2D)-1

14、有以下程序

floatfun(intxjnty)

{return(x+y);}

main()

{inta=2,b=5,c=8;

printf("%3.0f\n",fun((int)fun(a+c,b),a-c));

)

程序运行后的输出结果是。

A)编译出错B)9C)21D)9.0

15、若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是

A)函数调用可以作为独立的语句存在B)函数调用可以作为一个函数的实参

C)函数调用可以出现在表达式中D)函数调用可以作为一个函数的形参

16、若有以下调用语句,则不正确的fun函数的首部是。

main()

{…

inta[50],n;

fun(n,&a[9]);

A)voidfun(intm,intx[])B)voidfun(ints,inth[41])

C)voidfun(intp,int*s)D)voidfun(intn,inta)

17、fseck函数的正确调用形式是。

A)fseek(文件指针,起始点,位移量)B)fseek(文件指针,位移量,起始点)

C)fseek(位移量,起始点,文件指针)D)fseek(起始点,位移量,文件指针)

18、若fp是指向某文件的指针,且已读到文件末尾,则函数feof(fp)的返回值是。

A)EOFB)-1C)1D)NULL

19、若有说明语句:charc=''72,;则变量c。

A)包含1个字符B)包含2个字符C)包含3个字符D)说明不合法,c的值不确定

20、若有说明intaE3][4]测a数组元素的非法引用是。

A)a[0][2*1]B)a[1][3]C)a[4-2][0]D)a[0][4]

21、设有以下说明语句

structstu

{inta;

floatb;

}stutype;

则下面的叙述不正确的是。

A)struct是结构体类型的关键字B)structstu是用户定义的结构体类型

C)stutype是用户定义的结构体类型名D)a和b都是结构体成员名

22、在C语言中,引用数组元素时,其数组下标的数据类型允许是。

A)整型常量B)整型表达式C)整型常量或整型表达式D)任何类型的表达式

23、若运行时给变量x输入12,则以下程序的运行结果是。

main()

{intx,y;

scanf("%d",&x);

y=x>12?x+10:x-12;

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

)

A)0B)22C)12D)10

24、以下说法正确的是。

A)C语言程序总是从第一个的函数开始执行

B)在C语言程序中,要调用函数必须在main()函数中定义

C)C语言程序总是从main()函数开始执行

D)C语言程序中的main()函数必须放在程序的开始部分

25、表达式OxlS△OxS的值是。

A)0x04B)0x13C)OxE8D)0x17

26、有以下程序

#dcfineF(X,Y)(X)*(Y)

main()

{inta=3,b=4;

printf("%d\n",F(a++,b++));

)

程序运行后的输出结果是。

A)12B)15C)16D)20

27、下列程序执行后的输出结果是。

voidfunc(int*a,intb口)

{b[0]=*a+6;}

main()

{inta,b[5];

a=0;b[0]=3;

func(&a,b);printf("%d\n",b[01);

)

A)6B)7C)8D)9

28、若有下面的程序段:

chars口="china";char*p;p=s;

则下列叙述正确的是。

A)s和p完全相同B)数组s中的内容和指针变量p中的内容相等

C)s数组长度和p所指向的字符串长度相等D)*p与s[01相等

29、有以下程序

voidsort(inta[1,intn)

{int

for(i=0;i<n-l;i++)

for(j=i+l;j<n;j++)

if(a[i]<a[j]){t=a[i];a[i]=a[j];a[j]=t;}

)

main()

{intaa[10]={1,2,3,4,5,6,7,8,9,10});

sort(&aa[31,5);

for(i=0;i<10;i++)printf("%d,",aa[i]);

printf("\n");

)

程序运行后的输出结果是。

A)1,2,3,4,5,6,7,8,9,10,B)10,9,8,7,6,5,4,3,2,1,

C)1,2,3,8,7,6,5,4,9,10,D)1,2,10,9,8,7,6,5,4,3,

30、以下程序的运行结果是。

#include"stdio.h"

main()

{structdate

{intyear,month,day;}today;

printf("%d\n",sizeof(structdate));

)

A)6B)8C)10D)12

31、若有语句int*point,a=4;和point=&a;下面均代表地址的一组选项是。

A)a,point,*&aB)&*a,&a,*pointC)*&point,*point,&aD)&a,&*point,point

32、已定义以下函数

fun(char*p2,char*p1)

(

while((*p2=*pl)!='\0'){pl++;p2++;}

)

函数的功能是。

A)将pl所指字符串复制到p2所指内存空间B)将pl所指字符串的地址赋给指针p2

C)对pl和p2两个指针所指字符串进行比较D)检查pl和p2两个指针所指字符串中是否有、(X

33、若执行下述程序时,若从键盘输入6和8时,结果为。

main()

{inta,b,s;

scanf("%d%d",&a,&b);

s=a

if(a<b)

s=b;

s*=s;

printf("%d",s);

A)36B)64C)48D)以上都不对

34、下列关于C语言数据文件的叙述中正确的是。

A)文件由ASCH码字符序列组成,C语言只能读写文本文件

B)文件由二进制数据序列组成,C语言只能读写二进制文件

C)文件由记录序列组成,可按数据的存放形式分为二进制文件和文本文件

D)文件由数据流形式组成,可按数据的存放形式分为二进制文件和文本文件

35、有以下程序

voidss(char*s,chart)

{while(*s)

{if(*s==t)*s=t-'a'+'A';

s++;

main()

{charstrl[100J="abcddfcfdbd",c='d';

ss(strl,c);printf("%s\n",strl);

)

程序运行后的输出结果是。

A)ABCDDEFEDBDB)abcDDfcfDbDC)abcAAfcfAbAD)Abcddfcfdbd

二、填空题,答案不写入答题栏的一律不得分!(每空2分,共30分)

36、以下程序段的输出结果是。

main()

{inta=2,b=3,c=4;

a*=16+(b++)-(++c);

printf("%d",a);

)

37〜38、若变量n中的值为24,则print()函数共输出行,最后一行有个数。

voidprint(intn,intaa□)

{inti;

for(i=1;i<n+l;i++)

{printf("%6d",aa[i]);

if(!(i%5))printf("\n");

)

printf("\n");

}

39、调用C语标准库函数时要求用命令。

40、stract函数的作用是。

41、C语言程序的注释可以出现在程序中的任何地方,一个注释以作为开始和结束。

42、设二进制数A是00101101,若想通过异或运算A-B使A的高4位取反,低4位不变,则二进制数

B应是。

43、若已知a=10,b=20,则表达式!a<b的值为。

44、设i,j,k均为int型变量,则执行完下面的for语句后,k的值为。

for(i=0,j=10;i<=j;i++,j—)k=i+j;

45〜46、下面函数的功能是:找出一维数组元素中最大的值和它所在的下标,最大的值和它所在的下标

通过形参传回。数组元素中的值已在主函数中赋予。主函数中x是数组名,n是x中的数据个数,max

存放最大值,index存放最大值所在元素的下标。randomize()是初始化随机数生成器函数,rand()

返回一个随机数函数。请填空。

#include<stdlib.h>

#includc<stdio.h>

voidfun(inta[]jntn,int*max,int*d)

{inti;

*max=a[0];

*d=0;

for(i=0;;i++)

if(*max<)

{*max=a[i];*d=i;}

}

main()

{inti,x[20],max,index,n=10;

randomize();

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

{

x[ij=rand()%50;printf(”%4d”,x[i]);

)

printf("\n");

fun(x,n,&max,&index);

printf(nMax=%5d,lndex=%4d\nn,max,index);

)

47、以下程序的输出结果是。

voidfun()

{staticinta=0;

a+=2;printf(H%d*\a);

}

main()

{intcc;

for(cc=1;cc<4;cc++)fun();

printf("\n");

48、以下程序的输出结果是

#dcfincMAX(x,y)(x)>(y)?(x):(y)

main()

{inta=5,b=2,c=3,d=3,t;

t=MAX(a+b,c+d)*10;

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

)

49、下列y的值是。

inty;y=sizeof(2.25*4);

50、mystrlcn函数的功能是计算str所指字符串的长度,并作为函数值返回。请填空。

intmystrlen(char*str)

{inti;

for(i=0;!='\0';i++);

return(i);

}

三、程序设计题。要求程序结构清晰,没有逻辑错误,书写工整,无需写出运行结果。请写在背面并标

明题号(第51题7.5分、第52题10分,共17.5分,按关键步骤评分)

51、输入一个3><3的整数矩阵,求其对角线元素之差。

52、有10个学生,每个学生的数据包括学号(stu_num,6个字符,如S00101)、姓名(name,8个字

符)、三门课程的成绩(scorc[3],实型)及其平均分(avr,实型,初始时不赋值,)。首先输入这10

个学生的数据,然后再计算每个学生3门课程的平均分,存回avr中,并输出第6号学生的所有信息。

C语言程序设计三

一单项选择题(每小题1分,共10分)

1.以下4组用户定义标识符中,全部合法的一组是()

A)_totalclu_lsum

B)if-maxturb

QtxtREAL3COM

D)intk_2_001

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

#include<stdio.h>

main()

(

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

printf("%d",c>b>a);

}

A)2B)1C)0D)3

3.以下正确的叙述是()

A)在C语言中,main函数必须位于文件的开头

B)C语言每行中只能写一条语句

C)C语言本身没有输入、输出语句

D)对一个C语言进行编译预处理时,可检查宏定义的语法错误

4.设有定义:inta,*pa=&a;以下scanf语句中能正确为变量a读入数据的是()

A)scanf(M%dH,pa);B)scanf(H%dn,a);

C)scanf("%d”,&pa);D)scanf("%d”,*pa);

5,若有以下程序段,

intcl=l,c2=2,c3;

c3=1.0/c2*cl;

则执行后,c3中的值是()

A)0B)0.5C)1D)2

6.能正确表示逻辑关系:"a>=10或aWO”的C语言表达式是()

A)a>=10ora<=0B)a>=0|a<=10C)a>=10&&a<=0D)a>=10||a<=0

7.执行下面的程序时,将1、2、3、4分别赋给a、b、c、d,正确的输入是()

main()

(

inta,b,c,d;

scanf("%d,%d,%d%d",&a,&b,&c,&d);

A)1234B)123,4C)1,2,3,4D)1,2,34

8.有以下程序段

main()

(

intk=0;

while(k=l)k++;

)

则while循环执行的次数是()

A)无限次B)有语法错,不能执行C)一次也不执行D)执行1次

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

#include<stdio.h>

main()

(

inta=5,b=4,c=6,d;

printf("%d",d=a>b?(a>c?a:c):b);

)

A)5B)4C)6D)不确定

10.下面是对数组a的初始化,其中不正确的是()

A)a[5]={"ABCD"}B)a[5]={'A','B','C,'D'!

C)a[5]=""D)a[5]="ABCDE"

二、填空题(每空2分,共32分)

1.结构化程序设计中的三种基本结构是[1]、0、[3]o

2.C程序的基本组成单位是[4]。

3.标识符的第一个字符必须是⑸或⑹。

4.实常数123.457的规范化指数表示形式是⑺。

5.表达式7/2的结果是[8]。表达式7%2的结果是[9]。

6.定义一个整型数组a[10],则下标最大的数组元素为〃()]。

7.在函数的递归调用过程中,要使递归过程不是无限制进行下去,必须具有。

8.C语言提供了12]命令用来实现“文件包含”的操作。

9.已知:chare[尸{“china”上将字符数组c中整个字符串一次输出的语句书写格式为[13]

10.表达式4>3&&7<5-!0的值为[14]。

11.按照变量在函数中作用域不同,可以将变量分为"5]和[16]。

三、计算题(要求写出步骤)(每题4分,共8分)

[设inta=12,求出表达式a+=a-=a*a运算后a的值.

2.设a=2,b=3,x=3.5,y=2.5

求算术表达式(float)(b-a)/2+(int)x%(int)y的值

四、读下列程序,写出程序的运行结果(4X3=12)

1.已知字符A的ACSH码值为65,写出以下语句的输出结果

main()

{

charch='A';

printf(H%c,%dn,ch,ch+3);

)

2.main()

(

inta=10;

printf(“%d”,++a);

printf("%d”,a—);

}

3.main()

{intt=l;

for(i=l;i<5;i++)t=t*i;

printf(M%dn,t);

}

4.f(int*a,intb)

{b=b+*a;*a=*a+b;}

main()

{

intx=2,y=4;

int*p;

p=&x;

f(p,y);

printf("%d,%d",x,y);

)

五、程序填空(每空2分,共14分)

1.下列程序段以函数swap。调用的形式实现两个变量值的互换,请填空完善程序。

s*m,int*n)

{inttemp;

tcmp=[1];

[2];

*n=[3];

)

main()

{intx,y;

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

swap([4]);

printf(%d,%d”,x,y);

)

2.下面程序是计算1-3+5-7+……-99+101的值,请填空完善程序。

main()

{

inti,m,t=l,s=0;

for(i=l^<=101;[5])

{[6];s=s+m;[7];)

printf("%d\n”,s);

)

六、编程题:(共24分)

1.编程求1!+2!+3!+.......+50!的值。(6分)

2.用函数的递归调用方法求下列函数式的值(要求n由用户输入),递归公式为:(8分)

18=1)

total(n)=

total(n-l)+n+l(n>l)

3.编写程序输出下列形式的杨辉三角形的前10行。(10分)

1

11

121

1331

14641

C语言程序设计四

1"给定程序中,函数fun的功能是:找出形参s所指字符串中出现频率最高的字母(不

区分大小写),并统计出其出现的次数。

例如,形参s所指的字符串为:abcAbsmaxless,程序执行后的输出结果为:

letter*a*::::3times

letter's’::::3times

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

注意:源程序存放在考生文件夹下的blank).c中。

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

2"给定程序中,函数fun的功能是将a和b所指的两个字符串转换成面值相同的整数,

并进行相加作为函数值返回,规定字符串中只含9以下数字字符。

例如,主函数中输入字符串:32486和12345,在主函数中输出的函数值为:44831。

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

注意:源程序存放在考生文件夹下的blankl.c中。

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

3"给定程序中,函数fun的功能是:计算出形参s所指字符串中包含的单词个数,作为

函数值返回。为便于统计,规定各单词之间用空格隔开。

例如,形参s所指的字符串为:ThisisaClanguageprogram.,函数的返回值为6。

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

注意:源程序存放在考生文件夹下的blankl.c中。

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

4"给定程序中,函数fun的功能是建立一个NXN的矩阵。矩阵元素的构成规律是:最

外层元素的值全部为1;从外向内第2层元素的值全部为2;第3层元素的值全部为3,…

依次类推。例如,若N=5,生成的矩阵为

11111

12221

12321

12221

11111

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

注意:源程序存放在考生文件夹下的blankl.c中。

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

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

的功能是将形参a所指结构体变量中的数据赋给函数中的结构体变量b,并修改b中的学

号和姓名,最后输出修改后的数据。例如:a所指变量中的学号、姓名、和三门课的成绩

依次是:10001、""ZhangSan""、95、80、88,则修改后输出b中的数据应为:10002、""LiSi""、

95、80、88o

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

注意:源程序存放在考生文件夹下的blankl.c中。

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

6"给定程序中,函数fun的功能是将参数给定的字符串、整数、浮点数写到文本文件中,

再用字符串方式从此文本文件中逐个读入,并调用库函数atoi和atof将字符串转换成相应

的整数、浮点数,然后将其显示在屏幕上。

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

注意:源程序存放在考生文件夹下的blankl.c中。

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

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

数据均以二进制方式输出到文件中。函数fun的功能是重写形参所指文件中最后一个学生

的数据,即用新的学生数据覆盖该学生原来的数据,其它学生的数据不变。

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

注意:源程序存放在考生文件夹下的blankl.c中。

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

8"给定程序中,函数fun的功能是:求ss所指字符串数组中长度最短的字符串所在的行

下标,作为函数值返回,并把其串长放在形参n所指变量中。ss所指字符串数组中共有M

个字符串,且串长<N。

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

注意:源程序存放在考生文件夹下的blankl.c中。

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

9"给定程序中,函数fun的功能是:将s所指字符串中的所有数字字符移到所有非数字

字符之后,并保持数字字符串和非数字字符串原有的先后次序。例如,形参s所指的字符

串为:def35adh3kjsdf7o执行结果为:defadhkjsdf3537。

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

注意:源程序存放在考生文件夹下的blankl.c中。

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

10"给定程序中,函数fun的功能是:在形参s所指字符串中的每个数字字符之后插入一

个*号。例如,形参s所指的字符串为:dcf35adh3kjsdf7o执行结果为:dcf3*5*adh3*kjsdf7*。

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

注意:源程序存放在考生文件夹下的blankl.c中。

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

11、"给定程序modil.c中,函数fun的功能是:将一个由八进制数字组成的字符串转换为

与其面值相等的十进制整数。规定输入的字符串最多只能包含5位8进制数字。

例如,若输入77777,则输出将是32767。

请改正程序中的错误,使它能得出正确结果。

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

12、”给定程序modil.c中,函数fun的功能是:计算n!

例如,给n输入5,则输出120.000000。

请改正程序中的错误,使它能得出正确结果。

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

"给定程序modil.c中函数fun的功能是:将s所指字符串的反序和正序进行连接形成一个

新串放在t所指的数组中。

例如,当s所指字符串的内容为""ABCD""时,

t所指数组中的内容为""DCBAABCD""。

请改正程序中的错误,使它能得出正确的结果。

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

13、"给定程序modil.c中函数fun的功能是:交换主函数中两个变量的值。例如:若变量

a中的值原为8,b中的原值为3。程序运行后a中的值为3,b中的值为8。

请改正程序中的错误,使它能得出正确结果。

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

"给定程序modil.c中,函数fun的功能是:逐个比较p、q所指两个字符串对应位置中的字

符,把ASCH值大或相等的字符依次存放到c数组中,形成一个新的字符串。

例如,若a中的字符串为:aBCDeFgH,b中的字符串为:A

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论