欢迎来到冰豆网! | 帮助中心 分享价值,成长自我!
冰豆网
全部分类
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • 党团工作>
  • ImageVerifierCode 换一换
    首页 冰豆网 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    C填空题集.docx

    • 资源ID:23151379       资源大小:26.84KB        全文页数:26页
    • 资源格式: DOCX        下载积分:10金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要10金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    C填空题集.docx

    1、C填空题集填空题集: 一)基础知识1在C语言中,当关系表达式中的关系成立时,则该关系表达式的值为_。2设有说明“int j;float x;”,则执行语句“x=j=4.8;”后,x的值为_。3在C语言中,任一语句必定以字符_结束。4在C语言中,主要有三种控件结构,分别是顺序结构、_结构、_结构。5break语句不能用于_语句和_语句之外的任何其他语句中。6C语言规定,调用一个函数时,实参变量和形参变量之间的数据传递方式是_。7char型常量在内存中存放的是_码值。872在内存中占_个字节,”72”在内存中占_个字节。9所有的C语言程序是由 (9) 构成的。10在C程序设计中,可以将被调用函数中

    2、的值带回调用函数的三种方法分别是 (10) , (11) 和 (12) . 二)程序填空:1写出下面程序的运行结果:main() int a,b,c,t; a=1;b=2;c=2; while(abc) t=a; a=b; b=t; c-; printf(%d %d %dn,a,b,c);请写出程序运行结果:_。答案:1 2 0分析:1)abc关系表达式运算过程为:先进行ab比较,结果为0或1;然后0或1再与c进行比较。2)while是循环语句,只有当abc为0(假)时,才结束循环。本题循环两次。2当a,b,c的值分别为1,2,3时,以下程序段执行后a,b,c的值为_、_、_。if(ac) a

    3、=c;else a=b;c=b;b=a;分析:c=b;b=a;语句不属于分支结构组成部分。答案:3,3,2。3若想通过输入语句使字符数组a中存放字符串“1234”,字符变量b中存放字符5 , 则输入数据的语句形式应该是scanf( (1) );答案:scanf(“%s %c”,a,&b);对应的键入内容应该为:12345分析:注意在%s与%c之间一定要加空格,此空格的作用为:因为在键盘键入数据时,字符串输入的结束是以空格为标志的。此处加一个(或多个)空格用来对应键入数据时字符串的结束标志。如此处不加空格,则字符串的结束标志即空格符将会被字符变量b所接收,使得空格符后的内容将不会送入字符变量b中

    4、,从而不能达成预期的目的。即在%s与%c之间加空格的目的1)对应字符串输入结束标志,2)避免字符变量b接收空格。本程序段完整代码应该为:char a10,b;scanf(“%s %c”,a,&b);printf(“%sn”,a);printf(“%cn”,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型,

    5、然后在两个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 main() char str81,*sptr; (13) ;/* int i; */ for(i=0;i80; (14) ) /* i+ */ stri=ge

    6、tchar(); if(stri=n) break; stri= (15) ; /* 0 */ sptr=str ; while(*sptr) putchar( (16) ); /* *sptr+ */分析:1)putchar函数属标准输入输出函数,所以应该使用#include 语句。2)putchar函数中的参数应该使用字符型变量或字符常量。所以本题在putchar函数中使用的参数是*sptr(输出字符指针变量sptr所指向单元中的字符常量)。6下面程序的输出结果是 (2) 。 char b =ABCD; main() char *chp ; for (chp =b;*chp ;chp +=

    7、2) printf(%s,chp); printf(n); 7设i,j,k均为int型变量,则执行完下面的for循环后,k的值为 (4) . for(i=0,j=10 ; i=j ; i+, j-) k=i+j;8设有以下定义的语句: int a32=10,20,30,40,50,60, (*p)2; p=a; 则 *(*(p+2)+1)值为 (5) 。9在C程序设计中,可以将被调用函数中的值代回调用函数的三种方法分别是 (10) , (11) 和 (12) 。10以下程序的功能是:从键盘上输入一行字符,存入一个字符数组中,然后输出该字符串,请填空。 #include stdio.h main

    8、() char str81,*sptr; (13) ; for(i=0;i80; (14) ) stri=getchar(); if(stri=n) break; stri= (15) ; sptr=str ; while(*sptr) putchar( (16) ); 11 以下程序用来对从键盘上输入的两个字符串进行比较,然后输出两个字符串中第一个不相同字符的ASCII码之差.例如:输入的两个字符串分别为abcdef和abceef,则输出为-1。请填空。 #include main() char str100 , str2100 , c; int i , s; printf(n input

    9、string 1:n); gets (str1); printf(n input string 2:n); (17) /* gets(str2); */ i=0; while(strli= =str2i) & (str1i!= (18) ) /* 0 */ i+; s= (19) ; /* str1i-str2i */ printf(%dn,s);注意:gets也属于标准输入输出函数,用于输入字符串(串中可以含空格)。 12以下程序打印所有符合下列条件的3位正整数:是某一个数的平方数,其中有两位数字相同。如100,121等。main() int a,b,c,n,k; for(k=0;k+) n

    10、= (20) ; /* k*k */ if(n999) 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型)以二到十六进制形式输出,请填空。 #include main() char b16=0,1,2,3,4,5,6,7,8,9,A,B,C ,D,E,F; int c64,d,i=0,base; long n; printf(enter a number:n); scanf(%ld,&n

    11、); printf(enter new base:n); scanf(%d,&base); do ci= (22) ; /* n%base */ i+; n=n/base; while(n!=0); printf(transmite new base:n); for(-i ; i=0 ; -i ) d=ci; printf(%c , b (23) ); /* d */ 14下述程序用于统计文件中的字符个数,请填空。#include void main()FILE *fp; long num=0; if(fp=fopen(TEST,r)= =NULL) printf(Cant open file

    12、.); return; while(_(24)_) /* fgetc(fp)!=EOF */ num+; _(25)_; /* fclose(fp) */ printf(num=%ld,num);分析:1) EOF是一个文件结束标志,其值为1。EOF不是可输出字符,因此不能在屏幕上显示。由于字符的ASCII码不可能出现1,因此EOF定义为1是合适的。当读入的字符值等于1(即EOF)时,表示读入的已不是正常的字符而是文件结束符。但EOF只适用于文本文件。一情况下为了通用于文本文件和二进制文件,使用feof()函数来判断文件是否已经结束。注意:feof()函数为真时,位置指针指向EOF之后的位置。

    13、而使用常量EOF(-1)来判断文本文件是否结束时,则位置指针到EOF为止。2) fopen中的”r”是只读文本文件方式,它等效于”rt”,而不是”rb”。三)1998秋等级考试1下面的程序打印杨辉三角形,其格式为: 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 1 6 15 20 15 6 1 1 7 21 35 35 21 7 1 1 8 28 56 70 56 28 8 1 1 9 36 84 126 126 84 36 9 1程序如下:#define N 11/*1998年秋 填空题9*/main() int i,j,aN+1N+1; for(i

    14、=1;i=N;i+) aii=1; ai1=1; for( ;iN;i+)/* i=3 */ for(j=2;j+) /* ji */ aij=; /* ai-1j-1+ai-1j */ for(i=1;i0) printf( );j-; /* 决定每一行输出的起始位置 */ for(j=1;j=i;j+) printf(%6d,aij); printf(n); printf(n);2下面程序首先建立一个链表,函数fmax()的功能是:求出链表所有结点中数据域值最大的结点的位置,并由参数s返回给主函数。该函数的第一个参数是链表的首指针。#include #include struct node

    15、 int data; struct node *next; ; void fmax(struct node *head,struct node ) struct node *p; p=head;*s=p; if(p=NULL) return; while(p) if(p-data ) *s=p; p= ; void print(struct node *p) while(p) printf(%5d,p-data); p=p-next; /*h为头结点指针,p为指向新开辟结点的指针,p1为指向链表尾结点的指针*/ main() struct node *h=0,*p,*p1; int a; pr

    16、intf(Input data:); scanf(%d,&a); while(a!=-1) p=(struct node *)malloc(sizeof(struct node); p-data=a; if(h=0) h=p;p1=p; else p1-next=p;p1=p; printf(Input data:); scanf(%d,&a); p-next=0; print(h); printf(n); fmax(h,&p); if(p) printf(Max data is:%dn,p-data); 四)1999春等级考试题:下列程序首先建立一个链表,并输出链表上的数据值。函数fun()

    17、的参数是链表的首指针,它完成的功能是:将链表中各结点分量data的数值为偶数的结点依次调到链表的前面。方法是:根据结点的值,分为奇偶数两个链表,然后将两个链表拼接在一起。 #include #include struct node int data; struct node *next; ;/*p指向当前结点,p1指向奇数子链表尾结点,odd指向奇数子链表首结点,p2指向偶数子链表尾结点,even指向偶数子链表首结点,*/struct node *fun(struct node *head) struct node *p=head,*even=0,*odd=0,*p1=0,*p2=0; if(

    18、head=NULL) return head; while(p) if(p-data%2) if(odd=0)odd=p;p1=p; else;p1=p; else if(even=0)even=p;p2=p; else;p2=p; p=p-next; if(odd) p-next=0; /*将奇数子链表放在后面*/ if(even) head=even; /*如果有偶数子链表,将偶数子链表放在前面*/ else head=odd; /*如果没有偶数子链表,则仅有奇数子链表,使head指向奇数子链表*/ return head; void print(struct node *p) while

    19、(p) printf(%5d,p-data); p=p-next; /*h为头结点指针,p为指向新开辟结点的指针,p1为指向链表尾结点的指针*/main() struct node *h=0,*p,*p1; int a; printf(Input data:); scanf(%d,&a); while(a!=-1) p=(struct node *)malloc(sizeof(struct node); p-data=a; if(h=0) h=p;p1=p; else p1-next=p;p1=p; printf(Input data:); scanf(%d,&a); p-next=0; pr

    20、int(h); printf(n); h=fun(h); print(h); 五)2000春等级考试题:1说明“int j=5,m2,k7,n;”,执行语句“n+=m*=n=j*k;”后,n和m的值分别为_和_。/* 2000春填空题1 */2下列程序输出的两个数分别是_和_。/* 2000春填空题2 */main() static int x33=1,2,5,6,7,8,9,(*p)3; p=x; printf(“%dt%dn”,(*(p+1)1,p00);3#include /*00春_填空6*/main() int a=1,b=2,x1,x2,x3; x1=add(a,b); x2=ad

    21、d(add(a,b),b); x3=add(a,b); printf(%dn%dn%dn,x1,x2,x3);int add(int x,int y) static int z=1; z=x+y+z; return(z);程序输出的第一行是_,第二行是_,第三行是_。答案:4 16 19分析:关键在于理解静态局部变量z的生存期,z始终存在,直至main程序运行结束。另外,x1,x2,x3的值与变量z的三次变化是一致的。4 #include /*00春_填空7*/void f(int *p1, int *p2) int *t; t=p1;p1=p2;p2=t; main() int a=10,b

    22、=20; printf(%d,%dn,a,b); f(&a,&b); printf(%d,%dn,a,b);程序输出的第一行是_,第二行是_。答案:10 2010 20分析:在fun函数中改变了指针变量p1,p2中保存的值(即指针),使其指向发生了变化,但变量a,b中的值并未发生变化。5 #include /*00春_填空8*/void fun(int *a,int b,int *c) *a=+b;b=*c;*c=*a; main() int a=10,b=20,c=30; int a=4; c=a+b; printf(%dn,a+b+c); int c=b; /* 此处定义的变量c与最外层定

    23、义*/ fun(&a,b,&c); /* 的变量c为两个不同的变量 */ printf(%dn,a+b+c); printf(%dn,a+b+c); 程序输出的第一行是_,第二行是_,第三行是_。答案:48 62 65分析:本题主要考察变量的作用域。main函数中有两层复合语句嵌套,在复合语句中定义的变量,其作用域仅限于本复合语句范围内。1) 最先定义的变量a=10一直未使用,而变量b=20的值一直有效。2) 变量c在最内层复合语句中重新进行了定义c=b; ,而经过fun函数的调用后a,c中的值又发生了变化。3) 最内层复合语句执行结束后,在本层定义的c被释放,进入其相邻外层,此时使用的c为c

    24、=a+b; 中所得到的c变量值24。4) 在不同复合语句中定义的同名变量c为不同的变量。6 #include /*00春_填空9*/void f(int *p,int n) int i,j; for(i=0;in;i+) for(j=i+1;jn;j+) if(pi&pj&(pj%pi=0) pj=0;main() int a28,i,j=0; for(i=0;i28;i+) ai=i+2; f(a,28); for(i=0;i28;i+) if(ai) printf(%dt,ai); if(+j%5=0) printf(n); 程序输出的第一行是_,第二行是_。答案: 2 3 5 7 111

    25、3 17 19 23 29分析:本题f函数的功能是用筛选法求质数。main生成28个(229)数字,然后用f函数求229之间的质数。最后把未筛掉的数字(质数)进行输出,且每行输出5个数字。注意:在f函数中, if(pi&pj&(pj%pi= =0) 条件含义是pi0且pj0且pj能被pi整除。六)2000秋等级考试题1char *fun(char *s)/*00秋_填空6*/ int i,j; for(i=j=0;si!=0;i+) if(si!=c) sj+=si; sj=0; return s;main() printf(%s,fun(chance); 程序输出结果是_。答案:hane分析

    26、:本程序实现删除字符串中的某个字符(c)的作用。其中函数fun是指针型函数,返回的指针s指向一个字符串,即hane。2int *swap(int *a,int *b) /*00秋_填空7*/ int *p; p=a;a=b;b=p; return a;main() int x=3,y=4,z=5; swap(swap(&x,&y),&z); printf(%d,%d,%d,x,y,z);程序输出的结果是:_。答案:3,4,5分析:swap的功能是交换指针变量中的地址值,而不是交换x,y,z变量中的值。3main()/*00秋_填空9*/ int i,p33=1,2,3,4,5,6,7,8,9,*p13,(*p2)3; for(i=0;i3;i+) p1i=pi; p2=p; for(i=1;i3;i+) printf(n%d,%d,*(*(p1+i)+1)+1,*(*+p2+1)+1);程序运行时输出的第一行是_,第二行是_。答案:6,69,9分析:注意区别*p13,(*p2)3含意。*p13是指针数组,(*p2)3是指向数组的指针,即行指针。p2自身是一个指针变量,用于指向包含3个元素的一维数组。并且对


    注意事项

    本文(C填空题集.docx)为本站会员主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2022 冰点文档网站版权所有

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

    收起
    展开