C填空题集Word格式文档下载.docx

上传人:b****1 文档编号:3634368 上传时间:2023-05-02 格式:DOCX 页数:26 大小:26.84KB
下载 相关 举报
C填空题集Word格式文档下载.docx_第1页
第1页 / 共26页
C填空题集Word格式文档下载.docx_第2页
第2页 / 共26页
C填空题集Word格式文档下载.docx_第3页
第3页 / 共26页
C填空题集Word格式文档下载.docx_第4页
第4页 / 共26页
C填空题集Word格式文档下载.docx_第5页
第5页 / 共26页
C填空题集Word格式文档下载.docx_第6页
第6页 / 共26页
C填空题集Word格式文档下载.docx_第7页
第7页 / 共26页
C填空题集Word格式文档下载.docx_第8页
第8页 / 共26页
C填空题集Word格式文档下载.docx_第9页
第9页 / 共26页
C填空题集Word格式文档下载.docx_第10页
第10页 / 共26页
C填空题集Word格式文档下载.docx_第11页
第11页 / 共26页
C填空题集Word格式文档下载.docx_第12页
第12页 / 共26页
C填空题集Word格式文档下载.docx_第13页
第13页 / 共26页
C填空题集Word格式文档下载.docx_第14页
第14页 / 共26页
C填空题集Word格式文档下载.docx_第15页
第15页 / 共26页
C填空题集Word格式文档下载.docx_第16页
第16页 / 共26页
C填空题集Word格式文档下载.docx_第17页
第17页 / 共26页
C填空题集Word格式文档下载.docx_第18页
第18页 / 共26页
C填空题集Word格式文档下载.docx_第19页
第19页 / 共26页
C填空题集Word格式文档下载.docx_第20页
第20页 / 共26页
亲,该文档总共26页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

C填空题集Word格式文档下载.docx

《C填空题集Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《C填空题集Word格式文档下载.docx(26页珍藏版)》请在冰点文库上搜索。

C填空题集Word格式文档下载.docx

else

c=b;

b=a;

语句不属于分支结构组成部分。

3,3,2。

3.若想通过输入语句使字符数组a中存放字符串“1234”,字符变量b中存放字符’5’,则输入数据的语句形式应该是scanf(

(1));

scanf(“%s%c”,a,&

b);

  对应的键入内容应该为:

1234 5↙

注意在%s与%c之间一定要加空格,此空格的作用为:

因为在键盘键入数据时,字符串输入的结束是以空格为标志的。

此处加一个(或多个)空格用来对应键入数据时字符串的结束标志。

如此处不加空格,则字符串的结束标志即空格符将会被字符变量b所接收,使得空格符后的内容将不会送入字符变量b中,从而不能达成预期的目的。

  即在%s与%c之间加空格的目的1)对应字符串输入结束标志,2)避免字符变量b接收空格。

本程序段完整代码应该为:

chara[10],b;

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

printf(“%c\n”,b);

4.设x和y均为int型变量,且x=1,y=2,则表达式1.0+x/y的值为(3)。

 答案:

1.0(1.000000)   必须有小数部分。

 分析:

1.0+x/y表达式的类型为double型。

请参见教材p54。

float型在运算时一律先转换成double型,以提高运算精度。

而int型与double型混合运算时,int型先转换为double型,然后在两个double型数据间进行运算。

所以本题1.0先变为double型,x/y也要由int型转换成double型,则整个表达式为double型。

注意:

如果用printf(“%d”,1.0+x/y);

 则结果为0。

因为double型数据占用8个字节空间,而int型数据占用2个字节空间。

double型1.0的后两个字节内容应该为0。

5.以下程序的功能是:

从键盘上输入一行字符,存入一个字符数组中,然后输出该字符串,请填空。

#include<

stdio.h>

main()

{charstr[81],*sptr;

(13);

        /*inti;

*/

for(i=0;

i<

80;

(14))/*i++*/

{str[i]=getchar();

if(str[i]=='

\n'

)break;

}

str[i]=(15);

/*‘\0’*/

sptr=str;

while(*sptr)putchar((16));

/**sptr++*/

1)putchar函数属标准输入输出函数,所以应该使用#include<

语句。

2)putchar函数中的参数应该使用字符型变量或字符常量。

所以本题在putchar函数中使用的参数是*sptr(输出字符指针变量sptr所指向单元中的字符常量)。

6.下面程序的输出结果是

(2)。

charb[]="

ABCD"

;

{char*chp;

for(chp=b;

*chp;

chp+=2)printf("

%s"

chp);

\n"

);

7.设i,j,k均为int型变量,则执行完下面的for循环后,k的值为(4).

for(i=0,j=10;

i<

=j;

i++,j--)k=i+j;

8.设有以下定义的语句:

inta[3][2]={10,20,30,40,50,60},(*p)[2];

p=a;

则*(*(p+2)+1)值为(5)。

9.在C程序设计中,可以将被调用函数中的值代回调用函数的三种方法分别是(10),(11)和(12)。

10.以下程序的功能是:

#include"

stdio.h"

(14))

11.以下程序用来对从键盘上输入的两个字符串进行比较,然后输出两个字符串中第一个不相同字符的ASCII码之差.例如:

输入的两个字符串分别为abcdef和abceef,则输出为-1。

请填空。

{charstr[100],str2[100],c;

inti,s;

\ninputstring1:

gets(str1);

\ninputstring2:

(17)/*gets(str2);

i=0;

while((strl[i]==str2[i])&

&

(str1[i]!

=(18)))/*‘\0’*/

i++;

s=(19);

/*str1[i]-str2[i]*/

%d\n"

s);

gets也属于标准输入输出函数,用于输入字符串(串中可以含空格)。

12.以下程序打印所有符合下列条件的3位正整数:

是某一个数的平方数,其中有两位数字相同。

如100,121等。

main()

{inta,b,c,n,k;

for(k=0;

k++)

{n=(20);

        /*k*k*/

if(n>

999) break;

a=n/100;

b=______(21)_________;

/*n/10%10*/

c=n%10;

if(!

((a-b)*(b-c)*(c-a))&

n>

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

13.以下程序可以把从键盘上输入的十进制数(long型)以二到十六进制形式输出,请填空。

{charb[16]={'

0'

'

1'

2'

3'

4'

5'

6'

7'

8'

9'

A'

B'

C'

'

D'

E'

F'

};

intc[64],d,i=0,base;

longn;

enteranumber:

scanf("

%ld"

&

n);

enternewbase:

%d"

base);

do

{c[i]=(22);

/*n%base*/

n=n/base;

}while(n!

=0);

transmitenewbase:

for(--i;

i>

=0;

--i)

{d=c[i];

%c"

b(23));

/*[d]*/

}

14.下述程序用于统计文件中的字符个数,请填空。

 #include<

voidmain()

{FILE*fp;

longnum=0;

if((fp=fopen("

TEST"

"

r"

))==NULL)

{printf("

Can'

topenfile."

return;

while(___(24)___)/*fgetc(fp)!

=EOF*/

num++;

____(25)____;

/*fclose(fp)*/

num=%ld"

num);

1)EOF是一个文件结束标志,其值为-1。

EOF不是可输出字符,因此不能在屏幕上显示。

由于字符的ASCII码不可能出现-1,因此EOF定义为-1是合适的。

当读入的字符值等于-1(即EOF)时,表示读入的已不是正常的字符而是文件结束符。

但EOF只适用于文本文件。

一情况下为了通用于文本文件和二进制文件,使用feof()函数来判断文件是否已经结束。

feof()函数为真时,位置指针指向EOF之后的位置。

而使用常量EOF(-1)来判断文本文件是否结束时,则位置指针到EOF为止。

2)fopen中的”r”是只读文本文件方式,它等效于”rt”,而不是”rb”。

三)1998秋等级考试

1.下面的程序打印杨辉三角形,其格式为:

         1

11

121

1331

14641

15101051

1615201561

172135352171

18285670562881

193684126126843691

程序如下:

#defineN11           /* 1998年秋填空题9 */

{inti,j,a[N+1][N+1];

for(i=1;

=N;

i++)

 {a[i][i]=1;

a[i][1]=1;

 }

for(    ;

N;

i++)       /*i=3*/

for(j=2;

     ;

j++)/*j<

i*/

a[i][j]=        ;

/*a[i-1][j-1]+a[i-1][j]*/

{j=N-i-1;

while(j>

0){printf("

"

j--;

} /*决定每一行输出的起始位置*/

for(j=1;

j<

=i;

j++)

%6d"

a[i][j]);

2.下面程序首先建立一个链表,函数fmax()的功能是:

求出链表所有结点中数据域值最大的结点的位置,并由参数s返回给主函数。

该函数的第一个参数是链表的首指针。

#include<

#include<

alloc.h>

structnode{

intdata;

structnode*next;

};

voidfmax(structnode*head,structnode)

{structnode*p;

p=head;

*s=p;

if(p==NULL){return;

while(p)

{if(p->

data>

)*s=p;

p=;

}

voidprint(structnode*p)

{while(p)

{printf("

%5d"

p->

data);

p=p->

next;

/*h为头结点指针,p为指向新开辟结点的指针,p1为指向链表尾结点的指针*/

{structnode*h=0,*p,*p1;

inta;

Inputdata:

"

a);

while(a!

=-1)

{p=(structnode*)malloc(sizeof(structnode));

p->

data=a;

if(h==0){h=p;

p1=p;

else{p1->

next=p;

next=0;

print(h);

fmax(h,&

p);

if(p)printf("

Maxdatais:

四)1999春等级考试题:

下列程序首先建立一个链表,并输出链表上的数据值。

函数fun()的参数是链表的首指针,它完成的功能是:

将链表中各结点分量data的数值为偶数的结点依次调到链表的前面。

方法是:

根据结点的值,分为奇偶数两个链表,然后将两个链表拼接在一起。

/* p指向当前结点,p1指向奇数子链表尾结点,odd指向奇数子链表首结点,p2指向偶数子链表尾结点,even指向偶数子链表首结点,*/

structnode*fun(structnode*head)

{structnode*p=head,*even=0,*odd=0,*p1=0,*p2=0;

if(head==NULL){returnhead;

data%2)

if(odd==0){odd=p;

else{      ;

else

if(even==0){even=p;

p2=p;

if(odd)p->

  /*将奇数子链表放在后面*/

if(even){head=even;

       ;

}/*如果有偶数子链表,将偶数子链表放在前面*/

elsehead=odd;

/*如果没有偶数子链表,则仅有奇数子链表,使head指向奇数子链表*/

returnhead;

h=fun(h);

五)2000春等级考试题:

1.说明“intj=5,m=2,k=7,n;

”,执行语句“n+=m*=n=j*k;

”后,n和m的值分别为__________和_________。

/*2000春填空题1*/

2.下列程序输出的两个数分别是_____和_____。

/*2000春填空题2*/

   main()

{staticintx[3][3]={{1,2},{5,6},{7,8,9}},(*p)[3];

p=x;

printf(“%d\t%d\n”,(*(p+1))[1],p[0][0]);

3.#include<

/*00春_填空6*/

{inta=1,b=2,x1,x2,x3;

x1=add(a,b);

x2=add(add(a,b),b);

x3=add(a,b);

%d\n%d\n%d\n"

x1,x2,x3);

intadd(intx,inty)

{staticintz=1;

z=x+y+z;

return(z);

程序输出的第一行是_____,第二行是____,第三行是_____。

41619

关键在于理解静态局部变量z的生存期,z始终存在,直至main程序运行结束。

另外,x1,x2,x3的值与变量z的三次变化是一致的。

4.#include<

/*00春_填空7*/

voidf(int*p1,int*p2)

{int*t;

t=p1;

p1=p2;

p2=t;

{inta=10,b=20;

%d,%d\n"

a,b);

f(&

a,&

程序输出的第一行是_________,第二行是__________。

1020

在fun函数中改变了指针变量p1,p2中保存的值(即指针),使其指向发生了变化,但变量a,b中的值并未发生变化。

5.#include<

/*00春_填空8*/

voidfun(int*a,intb,int*c)

{*a=++b;

b=*c;

*c=*a;

{inta=10,b=20,c=30;

{inta=4;

c=a+b;

a+b+c);

{intc=b;

/*此处定义的变量c与最外层定义*/

fun(&

a,b,&

c);

/*的变量c为两个不同的变量*/

程序输出的第一行是________,第二行是________,第三行是________。

486265

本题主要考察变量的作用域。

main函数中有两层复合语句嵌套,在复合语句中定义的变量,其作用域仅限于本复合语句范围内。

1)最先定义的变量a=10一直未使用,而变量b=20的值一直有效。

2)变量c在最内层复合语句中重新进行了定义c=b;

,而经过fun函数的调用后a,c中的值又发生了变化。

3)最内层复合语句执行结束后,在本层定义的c被释放,进入其相邻外层,此时使用的c为c=a+b;

中所得到的c变量值24。

4)在不同复合语句中定义的同名变量c为不同的变量。

6.#include<

/*00春_填空9*/

voidf(int*p,intn)

{inti,j;

n;

for(j=i+1;

if(p[i]&

p[j]&

(p[j]%p[i]==0))p[j]=0;

{inta[28],i,j=0;

28;

i++)a[i]=i+2;

f(a,28);

if(a[i])

%d\t"

a[i]);

if(++j%5==0)printf("

程序输出的第一行是__________________,第二行是_________________。

235711

1317192329

本题f函数的功能是用筛选法求质数。

main生成28个(2—29)数字,然后用f函数求2—29之间的质数。

最后把未筛掉的数字(质数)进行输出,且每行输出5个数字。

在f函数中,if(p[i]&

(p[j]%p[i]==0))条件含义是p[i]<

>

0且p[j]<

0且p[j]能被p[i]整除。

六)2000秋等级考试题

1.char*fun(char*s)          /*00秋_填空6*/

for(i=j=0;

s[i]!

='

\0'

if(s[i]!

c'

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

s[j]='

  

returns;

{printf("

fun("

chance"

));

程序输出结果是_________。

hane

本程序实现删除字符串中的某个字符(c)的作用。

其中函数fun是指针型函数,返回的指针s指向一个字符串,即hane。

2.int*swap(int*a,int*b)       /*00秋_填空7*/

{int*p;

a=b;

b=p;

returna;

{intx=3,y=4,z=5;

swap(swap(&

x,&

y),&

z);

%d,%d,%d"

x,y,z);

程序输出的结果是:

_________。

3,4,5

swap的功能是交换指针变量中的地址值,而不是交换x,y,z变量中的值。

3.main()              /*00秋_填空9*/

{inti,p[3][3]={1,2,3,4,5,6,7,8,9},*p1[3],(*p2)[3];

3;

i++)p1[i]=p[i];

p2=p;

\n%d,%d"

*(*(p1+i)+1)+1,*(*++p2+1)+1);

程序运行时输出的第一行是_____,第二行是______。

6,6

9,9

注意区别*p1[3],(*p2)[3]含意。

*p1[3]是指针数组,(*p2)[3]是指向数组的指针,即行指针。

p2自身是一个指针变量,用于指向包含3个元素的一维数组。

并且对

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

当前位置:首页 > 初中教育 > 语文

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

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