C程序分析填空训练题1.docx

上传人:b****1 文档编号:10351232 上传时间:2023-05-25 格式:DOCX 页数:20 大小:20.41KB
下载 相关 举报
C程序分析填空训练题1.docx_第1页
第1页 / 共20页
C程序分析填空训练题1.docx_第2页
第2页 / 共20页
C程序分析填空训练题1.docx_第3页
第3页 / 共20页
C程序分析填空训练题1.docx_第4页
第4页 / 共20页
C程序分析填空训练题1.docx_第5页
第5页 / 共20页
C程序分析填空训练题1.docx_第6页
第6页 / 共20页
C程序分析填空训练题1.docx_第7页
第7页 / 共20页
C程序分析填空训练题1.docx_第8页
第8页 / 共20页
C程序分析填空训练题1.docx_第9页
第9页 / 共20页
C程序分析填空训练题1.docx_第10页
第10页 / 共20页
C程序分析填空训练题1.docx_第11页
第11页 / 共20页
C程序分析填空训练题1.docx_第12页
第12页 / 共20页
C程序分析填空训练题1.docx_第13页
第13页 / 共20页
C程序分析填空训练题1.docx_第14页
第14页 / 共20页
C程序分析填空训练题1.docx_第15页
第15页 / 共20页
C程序分析填空训练题1.docx_第16页
第16页 / 共20页
C程序分析填空训练题1.docx_第17页
第17页 / 共20页
C程序分析填空训练题1.docx_第18页
第18页 / 共20页
C程序分析填空训练题1.docx_第19页
第19页 / 共20页
C程序分析填空训练题1.docx_第20页
第20页 / 共20页
亲,该文档总共20页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

C程序分析填空训练题1.docx

《C程序分析填空训练题1.docx》由会员分享,可在线阅读,更多相关《C程序分析填空训练题1.docx(20页珍藏版)》请在冰点文库上搜索。

C程序分析填空训练题1.docx

C程序分析填空训练题1

 

程序分析填空训练题

 

(1)若有语句inti=-19,j=i%4;printf("%d\n",j);

则输出的结果是【1】。

 

(2)若有程序

main()

{inti,j;scanf("i=%d,j=%d",&i,&j);

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

}

要求给i赋10,给j赋20,则应该从键盘输入【2】。

 

(3)若有以下程序main()

{intp,a=5;if(p=a!

=0)printf("%d\n",p);elseprintf("%d\n",p+2);

}

执行后输出结果是【3】。

 

(4)若有以下程序

main()

{inta=4,b=3,c=5,t=0;if(a

}

执行后输出结果为【4】。

 

(5)若有以下程序main()

{int

a[4][4]={{1,2,-3,-4},{0,-12,-13,14},{-21,23,0,-24},{-31,32,-33,0}};inti,j,s=0;

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

 

{if(a[i][j]<0)continue;if(a[i][j]==0)break;s+=a[i][j];

}

}

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

}

执行后输出结果是【5】。

 

(6)若有以下程序

main()

{chara;a='H'-'A'+'0';printf("%c\n",a);

}

执行后输出结果是【6】。

 

(7)若有以下程序intf(intx,inty)

{return(y-x)*x;}main()

{inta=3,b=4,c=5,d;d=f(f(3,4),f(3,5));printf("%d\n",d);

}

执行后输出结果是【7】。

 

(8)函数YangHui的功能是把杨辉三角形的数据赋给二维数组的下半三角,形式

如下

1

11

121

1331

14641.

其构成规律是:

(1)第0列元素和主对角线元素均为1

(2)其余元素为其左上方和正上方元素之和

(3)数据的个数每行递增1请将程序补充完整。

#defineN6

voidyanghui(intx[N][N]){inti,j;

 

x[0][0]=1;

for(i=1;i

{x[i][0]=【8】=1;for(j=1;j

x[i][j]=【9】;

}

}

 

(9)以下函数的功能是删除字符串s中的所有数字字符。

请填空。

vioddele(char*s)

{intn=0,i;for(i=0;s[i];i++)if(【10】)s[n++]=s[i];s[n]=【11】;

}

 

(10)设函数findbig已定义为求3个数中的最大值。

以下程序将利用函数指针调用findbig函数。

请填空。

main()

{intfindbig(int,int,int);int(*f)(),x,y,z,big;

f=【12】;scanf("%d%d%d",&x,&y,&z);big=(*f)(x,y,z);printf("big=%d\n",big);

}

 

(11)以下程序的输出结果是【13】。

#defineMCRA(m)2*m

#defineMCRB(n,m)2*MCRA(n)+mmain()

{inti=2,j=3;printf("%d\n",MCRB(j,MCRA(i)));

}

 

(12)设有以下定义

structss

{intinfo;structss*link;}x,y,z;

且已建立如下所示链表结构:

x→y→z

 

请写出删除结点y的赋值语句【14】。

 

(13)已有文本文件test.txt,其中的内容为:

Hello,everyone!

以下程序中,文件test.txt已正确为“读”而打开,由此文件指针fr指向文件,则程序的输出结果是【15】。

#include

main()

{FILE*fr;charstr[40];

......

fgets(str,5,fr);

printf("%s\n",str);

fclose(fr);

}

 

(14)以下程序运行后的输出结果是【16】。

main()

{intp=30;

printf("%d\n",(p/3>0?

p/10:

p%3));

}

 

(15)以下程序运行后的输出结果是【17】。

main()

{charm;

m='B'+32;printf("%c\n",m);

}

 

(16)以下程序运行后的输出结果是【18】。

main()

{inta=1,b=3,c=5;

if(c=a+b)printf("yes\n");

elseprintf("no\n");

}

 

(17)以下程序运行后的输出结果是【19】。

main()

{inti,m=0,n=0,k=0;for(i=9;i<=11;i++)switch(i/10)

{case0:

m++;n++;break;

case10:

n++;break;

default:

k++;n++;

}

printf("%d%d%d\n",m,n,k);

}

 

(18)执行以下程序后,输出'#'号的个数是【20】。

#includemain()

{inti,j;

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

for(j=2;j<=i;j++)putchar('#');

}

 

(19)以下程序的功能是调用函数fun计算:

m=1-2+3-4+,+9-10,并输出结果。

请填空。

intfun(intn){intm=0,f=1,i;for(i=1;i<=n;i++){m+=i*f;

f=【21】;

}

returnm;

}

main()

{printf("m=%d\n",【22】);}

 

(20)以下程序运行后的输出结果是【23】main()

{inti,n[]={0,0,0,0,0};for(i=1;i<=4;i++)

{n[i]=n[i-1]*2+1;printf("%d",n[i]);

}

}

 

(21)以下程序运行后的输出结果是【24】main()

{inti,j,a[][3]={1,2,3,4,5,6,7,8,9};for(i=0;i<3;i++)for(j=i+1;j<3;j++)a[j][i]=0;for(i=0;i<3;i++)

{for(j=0;j<3;j++)printf("%d",a[i][j]);printf("\n");

}

}

 

(22)以下程序运行后的输出结果是【25】

inta=5;

fun(intb)

 

{staticinta=10;a+=b++;printf("%d",a);

}

main()

{intc=20;fun(c);a+=c++;printf("%d\n",a);

}

 

(23)请在以下程序第一行的下划线处填写适当内容,使程序能正确运行。

【26】(double,double);

main()

{doublex,y;scanf("%lf%lf",&x,&y);printf("%lf\n",max(x,y));

}

doublemax(doublea,doubleb){return(a>b?

a:

b);}

(24)以下程序运行后输入:

3,abcde<回车>,则输出结果是【27】#include

move(char*str,intn){chartemp;inti;temp=str[n-1];for(i=n-1;i>0;i--)str[i]=str[i-1];str[0]=temp;

 

}

main()

{chars[50];intn,i,z;scanf("%d,%s",&n,s);z=strlen(s);

for(i=1;i<=n;i++)move(s,z);printf("%s\n",s);

}

 

(25)以下程序运行后的输出结果是【28】

fun(intx)

{if(x/2>0)fun(x/2);printf("%d",x);

}

main()

{fun(6);}

 

(26)已有定义如下:

structnode

{intdata;

structnode*next;

}*p;

以下语句调用malloc

函数,使指针

p指向一个具有

structnode

类型的动态存

储空间。

请填空。

p=(structnode*)malloc(

【29】

);

(27)以下程序的功能是将字符串s中的数字字符放入d数组中,最后输出d中的字符串。

例如,输入字符串:

abc123edf456gh,执行程序后输出:

123456。

请填空。

#include#includemain()

{chars[80],d[80];inti,j;gets(s);for(i=j=0;s[i]!

='\0';i++)

if(【30】){d[j]=s[i];j++;}d[j]='\0';

puts(d);

}

 

(28)以下程序运行后的输出结果是【31】。

main()

{intx=10,y=20,t=0;

if(x==y)t=x;x=y;y=t;

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

}

 

(29)以下程序运行后的输出结果是【32】。

main()

{intx=15;

while(x>10&&x<50)

{x++;

if(x/3){x++;break;}

elsecontinue;

}

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

}

 

(30)有以下程序:

#includemain()

 

{charc;

while((c=getchar())!

='?

')putchar(--c);

}

程序运行时,如果从键盘输入:

Y?

N?

<回车>,则输出结果为【33】。

 

(31)以下程序运行后的输出结果是【34】。

voidfun(intx,inty)

{x=x+y;y=x-y;x=x-y;printf("%d,%d,",x,y);}main()

{intx=2,y=3;

fun(x,y);

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

}

 

(32)以下函数的功能是计算s=1+1/2!

+1/3!

+,,+1/n!

,请填空。

doublefun(intn)

{doubles=0.0,fac=1.0;inti;

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

{fac=fac【35】;

s=s+fac;

}

returns;

}

 

(33)下面程序的运行结果是:

【36】。

#defineN10#defines(x)x*x#definef(x)(x*x)main()

{inti1,i2;

i1=1000/s(N);i2=1000/f(N);

printf("%d%d\n",i1,i2);

}

 

(34)下面程序的运行结果是:

【37】。

voidswap(int*a,int*b)

{int*t;

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

}

main()

{intx=3,y=5,*p=&x,*q=&y;

swap(p,q);

printf("%d%d\n",*p,*q);

 

}

 

(35)下面程序的运行结果是:

【38】。

typedefunionstudent

{charname[10];longsno;charsex;floatscore[4];}STU;

main()

{STUa[5];

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

}

 

(36)若fp已正确定义为一个文件指针,d1.dat为二进制文件,请填空,以便为“读”而打开此文件:

fp=fopen(【39】);。

 

(37)设有定义:

intn,*k=&n;以下语句将利用指针变量k读写变量n中的内容,请将语句补充完整。

scanf("%d",【40】);

printf("%d\n",【41】);

 

(38)fun函数的功能是:

首先对a所指的N行N列的矩阵,找出各行中的最大的数,再求这N个最大值中的最小的那个数作为函数值返回。

请填空。

#include#defineN100intfun(int(*a)[N]){introw,col,max,min;for(row=0;row

 

if(【42】)max=a[row][col];

if(row==0)min=max;

elseif(【43】)min=max;

}

returnmin;

}

 

(39)函数sstrcmp()的功能是对两个字符串进行比较。

当s所指字符串和t所

指字符相等时,返回值为0;当s所指字符串大于t所指字符串时,返回值大于

0;当s所指字符串小于t所指字符串时,返回值小于0(功能等同于库函数

strcmp())。

请填空。

#include

intsstrcmp(char*s,char*t)

{while(*s&&*t&&*s==【44】)

 

{s++;t++;}

return【45】;

}

 

(40)若从键盘输入58,则以下程序输出的结果是【46】。

main()

{inta;scanf("%d",&a);if(a>50)printf("%d",a);if(a>40)printf("%d",a);

if(a>30)printf("%d",a);

}

 

(41)以下程序的输出结果是【47】。

main()

{inta=177;

printf("%o\n",a);

}

 

(42)以下程序的输出结果是【48】。

main()

{inta=0a+=(a=8);printf("%d\n",a);

}

 

(43)以下程序输出的结果是【49】。

main()

{inta=5,b=4,c=3,d;d=(a>b>c);

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

}

 

(44)以下定义的结构体类型拟包含两个成员,其中成员变量info用来存入整形数据;成员变量link是指向自身结构体的指针.请将定义补充完整。

structnode

{intinfo;

【50】link;

}

 

(45)以下程序的输出结果是【51】。

main()

{ints,i;for(s=0,i=1;i<3;i++,s+=i);

 

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

}

 

(46)以下程序的输出结果是【52】。

main()

{char*p="abcdefgh",*r;long*q;

q=(long*)p;

q++;

r=(char*)q;

printf("%s\n",r);

}

 

(47)以下程序的输出结果是【53】。

main()

{chars[]="abcdef";

s[3]='\0';

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

}

 

(48)以下程序的输出结果是【54】。

main()

{intx=0;sub(&x,8,1);printf("%d\n",x);

}

sub(int*a,intn,intk)

{if(k<=n)sub(a,n/2,2*k);*a+=k;

}

 

(49)设有如下宏定义

#defineMYSWAP(z,x,y){z=x;x=y;y=z;}

以下程序段通过宏调用实现变量a、b内容交换,请填空。

floata=5,b=16,c;

MYSWAP(【55】,a,b);

 

(50)以下程序用来统计文件中字符个数。

请填空。

#include"stdio.h"main()

{FILE*fp;longnum=0L;if((fp=fopen("fname.dat","r"))==NULL){printf("Openerror\n");exit(0);}while(【56】)

 

{fgetc(fp);num++;}printf("num=%1d\n",num-1);fclose(fp);

}

 

(51)以下程序中,select函数的功能是:

在N行M列的二维数组中,选出一个最大值作为函数值返回,并通过形参传回此最大值所在的行下标。

请填空。

#defineN3#defineM3select(inta[N][M],int*n)

{inti,j,row=1,colum=1;for(i=0;i

if(a[i][j]>a[row][colum]){row=i;colum=j;}

*n=【57】;

return【58】;

}

main()

{inta[N][M]={9,11,23,6,1,15,9,17,20},max,n;

max=select(a,&n);

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

}

 

(52)mystrlen函数的功能是计算str所指字符串的长度,并作为函数值返回。

请填空。

intmystrlen(char*str)

{inti;

for(i=0;【59】!

='\0';i++);

return(【60】);

}

 

答案:

(1)-3

(2)i=10,j=20

(3)1

(4)503

(5)58

(6)7

(7)9

(8)x[i][i]和x[i-1][j-1]+x[i-1][j]

(9)!

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

(10)findbig

(11)16

(12)x.link=y.link;

 

(13)Hell(14)3

(15)b

(16)yes

(17)132

(18)6

(19)【21】-f或f*-1或-1*f或f*(-1)或(-1)*f

【22】fun(10)

(19)13715

(20)123

056

009

(22)3025

(23)doublemax(或externdoublemax)

(24)cdeab

(25)136

(26)sizeof(structnode)或4

(27)s[i]>='0'&&s[i]<='9'或isdigit(s[i])或s[i]>=48&&s[i]<=57

s[i]<='9'&&s[i]>='0'或'9'>=s[i]&&'0'<=s[i]或'0'<=s[i]

'9'>=s[i]或s[i]<=57&&s[i]>=48或57>=s[i]&&48<=s[i]

 

&&

或48<=s[i]&&57>=s[i](28)20,0

(29)17

(30)X

(31)3,2,2,3

(32)/i或者*1.0/i或者*1/i或者*(1.0/i)或者/(double)i

(33)100010

(34)35

(35)80

(36)"d1.dat","rb"或"d1.dat","r+b"或"d1.dat","rb+"

(37)

【40】k

【41】*k

(38)

【42】max

或者max<=a[row][col]

或者a[row][col]>max

或者a[row][col]>=max

【43】maxmax或者min>=max

(39)

【44】*t或者t[0]

【45】*s-*t

或者*s-t[0]

或者s[0]-*t

或者s[0]-t[0]

(40)585858

(41)261

(42)16

(43)0

(44)structnode*

(45)5

(46)efgh

(47)abc

 

(48)7

(49)c

(50)!

feof(fp)

(51)【57】row

【58】a[row][colum]

(52)【59】*(str+i)或str[i]

【60】i

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

当前位置:首页 > 经管营销 > 经济市场

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

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