南昌大学 信工学院 C 语言程序设计 综合练习.docx

上传人:b****4 文档编号:11901825 上传时间:2023-04-08 格式:DOCX 页数:22 大小:27.99KB
下载 相关 举报
南昌大学 信工学院 C 语言程序设计 综合练习.docx_第1页
第1页 / 共22页
南昌大学 信工学院 C 语言程序设计 综合练习.docx_第2页
第2页 / 共22页
南昌大学 信工学院 C 语言程序设计 综合练习.docx_第3页
第3页 / 共22页
南昌大学 信工学院 C 语言程序设计 综合练习.docx_第4页
第4页 / 共22页
南昌大学 信工学院 C 语言程序设计 综合练习.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

南昌大学 信工学院 C 语言程序设计 综合练习.docx

《南昌大学 信工学院 C 语言程序设计 综合练习.docx》由会员分享,可在线阅读,更多相关《南昌大学 信工学院 C 语言程序设计 综合练习.docx(22页珍藏版)》请在冰豆网上搜索。

南昌大学 信工学院 C 语言程序设计 综合练习.docx

南昌大学信工学院C语言程序设计综合练习

一、简答题

1.用N-S图表示判断素数的算法。

2.阅读以下程序,写出程序的运行结果:

#include

voidmain()

{

charc1,c2;

c1='a';

c2='b';

c1=c1-32;

c2=c2-32;

printf("%c%c",c1,c2);

}

程序运行结果为__AB__________________

3.阅读以下程序,写出程序的运行结果:

main()

{

intc=5;

printf("%d,%d,%d\n",c+=c++,c+8,++c);

c=5;

printf("%d\n",(c+=c++,c+8,++c));

c=5;

printf("%d\n",c+=c++,c+8,++c);

}

程序运行结果为_:

12,14,6

12

12_

4阅读以下程序,写出程序的运行结果:

main()

{

intday,x1,x2;

day=9;

x2=1;

while(day>0){

x1=(x2+1)*2;

x2=x1;

day--;

}

printf(“total=%d\n”,x1);

}

程序运行结果为____________________

4.阅读以下程序,写出程序的运行结果:

#include

voidmain()

{

inti;

intf[10]={1,1};

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

f[i]=f[i-2]+f[i-1];

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

{

if(i%5==0)printf("\n");

printf("%12d",f[i]);

}

}程序运行结果为____________________

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

#include

main()

{intx=1,y=0,a=0,b=0;

switch(x)

{case1:

switch(y)

{case0:

a++;break;

case1:

b++;break;

}

case2:

a++;b++;break;

case3:

a++;b++;

}

printf(“a=%d,b=%d\n”,a,b);

}

程序的运行结果是

6.阅读以下程序并写出其运行结果

#include

main()

{inta[]={1,2,3,4},y,*p=&a[3];

--p;y=*p;printf(“y=%d\n”,y);

}

程序的运行结果是

7.阅读以下程序并写出其运行结果

#include

voidfun(int*s,intnl,intn2)

{inti,j,t;

i=nl;j=n2;

while(i

}

main()

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

fun(a,0,3);fun(a,4,9);fun(a,0,9);

for(k=0;k<10;k++)printf(“%d”,a[k]);printf(“\n”);

}

程序运行的结果是

8.阅读以下程序并写出其运行结果

#include

intf(intx)

{inty;

if(x==0||x==1)return(3);

y=x*x-f(x-2);

returny;

}

main()

{intz;

z=f(3);

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

}

程序的运行结果是

9.阅读以下程序并写出其运行结果

#include

#include

typedefstruct{charname[9];charsex;floatscore[2];}STU;

voidf(STUa)

{STUb={“Zhao”,’m’,85.0,90.0};inti;

strcpy(a.name,b.name);

a.sex=b.sex;

for(i=0;i<2;i++)a.score[i]=b.score[i];

}

main()

{STUc={“Qian”,’p’,95.0,92.0};

f(c);

printf(“%s,%c,%2.0f,%2.0f\n”,c.name,c.sex,c.score[0],c.score[1]);

}

程序的运行结果是

10.阅读以下程序,写出程序的运行结果:

#include

voidmain()

{

inti,j,row=0,colum=0,max;

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

max=a[0][0];

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

for(j=0;j<=3;j++)

if(a[i][j]>max)

{max=a[i][j];

row=i;

colum=j;

}

printf("max=%d,row=%d,colum=%d\n",max,row,colum);

}

程序运行结果为____________________

11.阅读以下程序,写出程序的运行结果:

#include

#definePI3.1415926

#defineS(r)PI*r*r

voidmain()

{floata,area;

a=3.6;

area=S(a);

printf("r=%6.2f\narea=%6.2f\n",a,area);

}

程序运行结果为____________________

12.阅读以下程序,写出程序的运行结果:

#include

voidmain()

{

voidexchange(int*q1,int*q2,int*q3);

inta,b,c,*p1,*p2,*p3;

a=22;b=56;c=128;

p1=&a;p2=&b;p3=&c;

exchange(p1,p2,p3);

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

}

voidexchange(int*q1,int*q2,int*q3)

{

voidswap(int*pt1,int*pt2);

if(*q1<*q2)swap(q1,q2);

if(*q1<*q3)swap(q1,q3);

if(*q2<*q3)swap(q2,q3);

}

voidswap(int*pt1,int*pt2)

{

inttemp;

temp=*pt1;

*pt1=*pt2;

*pt2=temp;

}

程序运行结果为____________________

13.阅读以下程序,写出程序的运行结果:

#include

voidmain()

{

intfac(intn);

inti;

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

printf("%d!

=%d\n",i,fac(i));

}

intfac(intn)

{

staticintf=1;

f=f*n;

return(f);

}

程序运行结果为____________________

14.阅读以下程序,写出程序的运行结果:

#include

voidmain()

{

intn;

for(n=100;n<=120;n++)

{if(n%3==0)

continue;

printf("%d",n);

}

}

程序运行结果为____________________

15.阅读以下程序并写出其运行结果

#include

main()

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

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

{p[i]=&x[2*i+1];

printf(“%d”,p[i][0]);

}

printf(“\n”);

}

程序的运行结果是

16.阅读以下程序并写出其运行结果

#include

voidfun(intx)

{if(x/2>0)fun(x/2);

printf(“%d”,x);

}

main()

{fun(3);

printf(“\n”);

}

程序的运行结果是

17.阅读以下程序并写出其运行结果

#defineMAX(a,b)(a>b)?

a:

b

main()

{

intx,y;

x=25;

y=56;

printf("theresultis:

%d\n",MAX(x,y));

}

程序的运行结果是

18.阅读以下程序并写出其运行结果

#include

main()

{

inti,j;

i=1;

while(i<=5){

j=1;

while(j<=i){

printf("%5d",j);

j++;

}

printf("\n");

i++;

}

}

程序的运行结果是

19.阅读以下程序并写出其运行结果

#incude

main()

{

inti,n3,n2,n1;

i=1;

while(i<=99){

n3=i/100;

n2=(i-n3*100)/10;

n1=i%10;

if((i%3==0)&&(n2==5||n1==5))

printf("%5d",i);

i++;

}

}

程序的运行结果是

20.阅读以下程序并写出其运行结果

#include

main()

{intx=8;

for(;x>0;x--)

{if(x%3){printf(“%d,”,x--);continue;}

printf(“%d,”,--x);

}

}

程序的运行结果是

21.阅读以下程序并写出其运行结果

#include

main()

{ints[12]={1,2,3,4,4,3,2,1,1,1,2,3},c[5]={0},i;

for(i=0;i<12;i++)c[s[i]]++;

for(i=1;i<5;i++)printf(“%d”,c[i]);

printf(“\n”);

}

程序的运行结果是 

22.阅读以下程序并写出其运行结果

#include

#include

voidfun(char*s[],intn)

{char*t;

inti,j;

for(i=0;i

for(j=i+1;j

if(strlen(s[i])>strlen(s[j])){t=s[i];s[i]=s[j];s[j]=t;}

}

main()

{char*ss[]={“bcc”,”bbcc”,”xy”,”aaaacc”,”aabcc”};

fun(ss,5);printf(“%s,%s\n”,ss[0],ss[4]);

}

程序的运行结果是

23.阅读以下程序并写出其运行结果

#include

voidfun(char*a,char*b)

{while(*a==’*’)a++;

while(*b=*a){b++;a++;}

}

main()

{char*s=”****a*b****”,t[80];

fun(s,t);

puts(t);

}

程序的运行结果是

24.阅读以下程序并写出其运行结果

#include

main()

{FILE*fp;

inta[10]={1,2,3},i,n;

fp=fopen(“dl.dat”,”w”);

for(i=0;i<3;i++)fprintf(fp,”%d”,a[i]);

fprintf(fp,”\n”);

fclose(fp);

fp=fopen(“dl.dat”,”r”);

fscanf(fp,”%d”,&n);

fclose(fp);

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

}

程序的运行结果是

25.阅读以下程序并写出其运行结果

#include

voidswap(int*a,int*b)

{int*t;

t=a;a=b;b=t;

}

main()

{inti=3,j=5,*p=&i,*q=&j;

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

}

程序的运行结果是

26.阅读以下程序并写出其运行结果

#include

main()

{inta[5]={2,4,6,8,10},*p;

p=a;p++;

printf(“%d”,*p);

}

程序的运行结果是

27.阅读以下程序并写出其运行结果

#defineLAB11

#defineLAB22

main()

{

inttemp;

#ifdefLAB1

temp=LAB1;

#else

temp=LAB2;

#endif

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

}

程序的运行结果是

28.阅读以下程序并写出其运行结果

#include

main()

{

inti,j;

charch;

i=1;

while(i<=5){

j=1;

ch='a';

while(j<=i){

printf("%2c",ch);

ch=ch+1;

j++;

}

printf("\n");

i++;

}

}

程序的运行结果是

29.阅读以下程序并写出其运行结果

#include

main()

{

inta[21],i,j;

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

a[i]=i;

i=1;

while(i<20){

i++;

if(a[i]!

=0){

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

for(j=1;i*j<=20;j++)

a[i*j]=0;

}}

}程序的运行结果是

二、阅读以下各段代码,在其中空白处填入合适的语句,使之成为一个正确的程序或函数。

1.以下程序从名为filea.dat的文本文件中逐个读入字符并显示在屏幕上。

请填空:

#include

main()

{FILE*fp;

charch;

fp=fopen(                       );

ch=fgetc(fp);

whlie(!

feof(fp))

{putchar(ch);

ch=fgetc(fp);

}

putchar(‘\n’);

fclose(fp);

}

2.下述程序用“碾转相除法”计算两个整数m和n的最大公约数。

该方法的基本思想是计算m和n相除的余数,如果余数为0则结束,此时的被除数就是最大公约数。

否则,将除数作为新的被除数,余数作为新的除数,继续计算m和n相除的余数,判断是否为0,等等,请填空使程序完整。

main(){

intm,n,w;

scanf(“%d,%d”,&m,&n);

while(n){

w=;

m=;

n=;

}

printf(“%d”,m);

}

3.下面函数的功能是将一个整数字符串转换为一个整数,例如:

"1234"转换为1234,请填空使程序完整。

intchnum(char*p){

intnum=0,k,len,j;

len=strlen(p);

for(;;p++){

k=;

j=(--len);

while()k=k*10;

num=num+k;

}

return(num);

}

4.下面程序调用getone函数开辟一个动态存储单元,调用assone函数把数据输入此动态存储单元,调用outone函数输出此动态存储单元中的数据,填空完成此程序。

#include"stdlib.h"

voidgetone(int**s);

voidassone(int*);

voidoutone(int*);

voidgetone(int**s){

s=(__________)malloc(sizeof(int));

}

voidassone(int*s){

scanf("%d",__________);

}

voidoutone(int*b){

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

}

main(){

int*p;

getone(&p);

assone(p);

outone(p);

}

5.完成以下字符串拷贝函数(将*from串拷贝到*to串):

voidcopy_string(char*from,char*to)

{

for(;*from!

='\0';__________________;)

________________________;

to[i]='\0';

}

6.以下程序从键盘输入10个整数到数组a,然后依次输出10个数组元素

#include

voidmain()

{

int*p,i,a[10];

p=a;

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

scanf("%d",p++);

printf("\n");

____________________;

for(__________________________)

printf("%d",*p);

}

7.所谓“水仙花数”是指一个3位数,其各位数字的立方和等于该数本身。

例如,153是一个“水仙花数”,因为153=13+53+33。

完成以下程序使之可打印出100~1000内的全部”水仙花数“。

main()

{

inti,j,k,n;

printf(““水仙花数”是:

”);

for(n=100;n<1000;n++)

{

i=n/100;;/*取百位数*/

j=___________;/*取十位数*/

k=n%10;/*取个位数*/

if(_________________________)

printf(“%4d”,n);

}

printf(“\n”);

}

8.以下程序用来求两整数的绝对值和。

请填空。

#include

voidmain()

{intx,y;

printf("Pleaseinputx,y:

");

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

if(x<0)____________;

if(_________)y=-y;

printf("\n|x|+|y|=%d\n",x+y);

}

9.以下程序可计算1名学生10门课成绩的平均分,将缺省语句填上。

#include

floataverage(floatarray[10])

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

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

sum+=______________;

aver=sum/10;;

return(aver);

}

voidmain()

{floatscore[10],aver;

inti;

printf("\ninput10scores:

");

for(i=0;i<10;i++)scanf("%f",&score[i]);

aver=___________;

printf("\naveragescoreis%5.2f\n",aver);

}

10.以下程序中函数fun的功能是:

统计person所指结构体数组中所有性别(sex)为M的记录的个数,存入变量n中,并做为函数值返回。

请填空:

#include

#defineN3

typedefstruct

{intnum;

charnam[10];

charsex;

}SS;

intfun(SSperson[])

{inti,n=0;

for(i=0;i

returnn;

}

main()

{SSW[N]={{1,”AA”,’F’},{2,”BB”,’M’},{3,”CC”,’M’}};

intn;

n=fun(W);

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

}

11.以下程序的功能是计算函数

请填空使程序完整。

#include

;

main(){

floatx,y,z,f;

scanf(“%f,%f,%f”,&x,&y,&z);

f=fun();

f+=fun();

printf(“f=%d”,f);

}

floatfun(floata,floatb){

return(a/b);

}

12.下面函数的功能使统计子串substr在母串str中出现的次数,请填空使程序完整。

intcount(char*str,char*substr){

inti,j,k,num=0;

for(i=0;;i++)

for(,k=0;substr[k]==str[j];k++;j++)

if(substr[]==’\0’){

num++;break;

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

当前位置:首页 > 高等教育 > 军事

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

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