收藏 分销(赏)

C程序设计期末练习题及答案.doc

上传人:二*** 文档编号:4396460 上传时间:2024-09-18 格式:DOC 页数:9 大小:34KB 下载积分:5 金币
下载 相关 举报
C程序设计期末练习题及答案.doc_第1页
第1页 / 共9页
本文档共9页,全文阅读请下载到手机保存,查看更方便
资源描述
一、选择题: 1、一个c次序的实行是从〔〕 A、 本次序的main函数开始,到本次序文件的最后一个函数终了 B、 本次序文件的第一个函数开始,到本次序文件的最后一个函数终了 C、 本次序的main函数开始,到main函数终了 D、 本次序文件的第一个函数开始,到本次序main函数终了 2、以下次序的运行结果为〔〕 main() {inta=100,x=10,y=20,ok1=5,ok2=0; if(x<y) if(y!=10) if(!ok1) a=1; else if(ok2)a=10; a=-1; printf(“%d\n〞,a); } A、1B、0 C、-1D、值不判定 3、曾经明白字母A的ASCII码为十进制数65,且c2为字符型,那么实行c2=‘A’+‘6’-‘3’;后,ascII码值为〔〕无答案 A、BB、66 C、不判定的值D、114 4、曾经明白inta=12,语句a+=a—=a*=a;实行后,a的值为〔〕 A、 a=—100B、a=—120 C、a=0D、a=12 5、下面有关for循环的精确描画是〔〕 A、 for循环只能用于循环次数曾经明白的循环 B、 for循环是先实行循环体语句,后揣摸表达式 C、 在for循环中,不克不迭用break语句跳出循环体 D、 for循环的循环体语句中,可以包含多条语句,且必须用花括号括起来 6、以下次序段〔〕 x=-1; do {x=x*x;} while(!x); A、是去世循环B、循环实行两次C、循环实行一次D、有语法差错 6、假定有说明:inta[3][4];那么对a数组元素的精确引用是〔〕 A、a[2][4]B、a[1,3]C、a[1+1][0]D、a(2)(1) 7、揣摸字符串a跟b是否相当,应当应用〔〕 A、if(a==b)B、if(a=b)C、if(strcpy(a,b)D、if(strcmp(a,b)==1) 8、假定i为整型变量,那么以下循环实行次数为〔〕 for(i=2;i==0;)printf(“%d〞,i--); A、无限次B、0次C、1次D、2次 9、假定用数组名作为函数调用的实参,转达给形参的是〔〕 A、 数组第一个元素的值 B、 数组中全部元素的值 C、 数组元素的个数 D、 数组的首所在 10、以下表达中不精确的选项是〔〕 A、 预处理命令行都必须以#号开始 B、 在次序中凡是以#号开始的语句行根本上预处理命令行 C、 C次序在执行过程中对预处理命令行停顿处理 D、 预处理命令不占用次序的实行时辰 11、以下次序的运行结果是〔〕 #defineMIN(x,y)(x)<(y)?(x):(y) main() {inti=10,j=15,k; k=10*MIN(i,j); printf(“%d\n〞,k); } A、10B、15 C、100D、150 12、以下有关宏交流的表达不精确的选项是〔〕 A、 宏交流不占用运行时辰 B、 宏名无典范 C、 宏交流只是字符交流 D、 宏名必须用大年夜写字母表示 13、假定有以下宏定义: #defineN2 #defineY(n)((N+1)*n) 那么实行语句z=2*(N+Y(5));后的结果是〔〕 A、语句有差错B、z=34 C、z=70D、z无定值 14、已有定义intk=2;int*p1,*p2;且p1、p2均已指向变量k,下面不克不迭精确实行的赋值语句是〔〕 A、k=*p1+*p2B、p2=kC、p1=p2D、k=*p1*(*p2) 15、假定有以下定义,那么对a数组元素的精确引用是〔〕 inta[5],*p=a; A、*&a[5]B、a+2 C、*(p+5)D、*(a+2) 17、假定有函数max(a,b),同时已使函数指针变量p指向函数max,当调用该函数时,精确的调用办法是〔〕 A、(*p)max(a,b); B、*pmax(a,b) C、(*p)(a,b) D、*p(a,b) 18、假定有以下说明语句,那么对pup中sex域的精确引用办法是〔〕 structpupil {charname[20]; intsex; }pup,*p; p=&pup; A、p.pup.sexB、p->pup.sexC、(*p).pup.sexD、(*p).sex 19、语句int(*ptr)();的含义是〔〕 A、 ptr是指向一维数组的指针变量 B、 ptr是指向int型数据的指针变量 C、 ptr是指向函数的指针,该函数前去一个int型数据 D、 ptr是一个函数名,该函数的前去值是指向int型数据的指针 20、假定有以下说明语句: structstudent {intage; intnum; }std,*p; p=&std; 那么以下对结构体变量std中成员age的引用办法不精确的选项是〔〕 A、std.ageB、p->ageC、(*p).ageD、*p.age 二、写出以下次序的运行结果或指明事实上现的功能 1、写出下面次序的运行结果 main() {intt=1605,h,m; h=(t/100)%12; if(h==0)h=12; printf(“%d:〞,h); m=t%100; if(m<10)printf(“0”); printf(“%d〞,m); if(t<1200||t==2400) printf(“AM〞); elseprintf(“PM〞); } 4:05PM 2、写出下面次序的运行结果 main() {inta,b,c; ints,w,t; s=w=t=0; a=-1;b=3;c=3; if(c>0)s=a+b; if(a<=0) {if(b>0) if(c<=0)w=a-b; } elseif(c>0)w=a-b; elset=c; printf(“%d%d%d〞,s,w,t); } 200 3、写出下面次序的运行结果 main() {inti,j,x=0; for(i=0;i<2;i++) {x++; for(j=0;j<=3;j++) {if(j%2==0) continue; x++; } x++; } printf(“x=%d\n〞,x); } x=8 4、写出下面次序的运行结果 inta=5;intb=7; main() {inta=4,b=5,c; c=plus(a,b); printf(“A+B=5%d\n〞,c); } plus(intx,inty) {intz; z=x+y; return(z); } A+B=9 5、写出下面次序的运行结果 main() {increment(); increment(); increment(); } increment() {staticintx=0; x+=1; printf(“%d\n〞,x); } 1 2 3 6、指明下面次序完成的功能 intfac(intn) {staticintf=1; f=f*n; return(f); } main() {intj; for(j=1;j<=5;j++) printf(“%d!=%d\n〞,j,fac(j)); } 输出1~5的阶乘 7、写出下面次序的运行结果 #include“stdio.h〞 main() { inta[10]={2,4,6,8,10,12,14,16,18,20},*p=a,i; for(i=0;i<2;i++) { printf(“%d〞,*p++); printf(“%d〞,*++p); printf(“%d〞,(*p)++); printf(“\n〞); } } 266 71010 三、完满次序 1、下面次序的功能是打印100以内个位数为6且能被3整除的所有数。请完满次序。 main() {inti,j; for(i=0;_______;i++) {j=i*10+6; if(______)continue; printf(“%d〞,j); } } i<=9 j%3!=0 2、下面次序的功能是检查一个二维数组是否对称〔即对所有的i跟j都有a[i][j]=a[j][i]〕,请完满次序。 main() {inta[4][4]={1,2,3,4,2,2,5,6,3,5,3,7,4,6,7,4}; inti,j,found=0; for(j=0;j<4;j++) for(_____;i<4;i++) if(a[j][i]!=a[i][j] {_________;break;} if(found==1)printf(No〞); elseprintf(“Yes〞); } i=j+1 Found=1 3、下面次序的功能是在任意字符串a中将与字符c相当的所有元素的下标值分不存放到整型数组b中。请完满次序。 main() {chara[80]; intj,b[80],k=0; gets(a); for(j=0;a[j]!=’\0’;j++) if(________){b[k]=j;______;} for(j=0;j<k;j++)printf(“%d〞,b[j]); } a[j]==’c’ k++ 4、下面次序的功能是将两个字符串s1跟s2连接起来。请完满次序。 main() {chars1[80],s2[80]; gets(s1);gets(s2); conj(s1,s2); puts(s1); } conj(char*p1,char*p2) {char*p=p1; while(*p1!=’\0’)_________; while(*p2!=’\0’){*p1=_______;p1++;p2++;} _______; return(p); } p1++ *p2 *p1=’\0’ 5、下面次序的功能是打算1-3+5-7+……-99+101的值,请完满次序。 main() {inti,t=1,s=0; for(i=1;i<101;i+=2) {________;s=s+t;_______;} printf(“%d\n〞,s); } t=t*i t=-t/i 6、下面次序的功能是将字符串中的数字字符删除后输出。 voiddelnum(char*s) {inti,j; for(i=0,j=0;s[i]!=’\0’;i++) if(s[i]<’0’_____s[i]>’9’){s[j]=s[i];j++} _____; } main() {char*item; gets(item); delnum(item); printf(“\n%s〞,_______); } || s[j]=’\0’ item 四、编程 1、编程求1+3+5…+99。 2、输出一个正整数,揣摸是否为素数。 #include<stdio.h> #include<math.h> voidmain() { intn,flag,i; scanf("%d",&n); flag=0; for(i=2;i<=sqrt(n);i++) { if(n%i==0) { flag=1;break; } } if(flag==0) printf("yes\n"); else printf("no\n"); }
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 考试专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服