您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 《C语言程序设计》综合练习试卷(一)
1《C语言程序设计》综合练习试卷(一)试题一判断题(每题1分,共10分)(用T表示正确、F表示不正确)1.C的任何类型数据在计算机内部都是以二进制形式存储的。2.按格式符“%d”输出float类型变量时,截断小数位后取整输出。3.字符数组中字符串可以整体输入输出。4.传值调用的形参只有在被调用时,才被创建(分配存储单元)。5.C语言中数组名是指针常量。6.结构体类型中的各成员项数据类型可以不相同。7.函数必须有返回值,否则不能使用函数。8.C程序执行总是从第一个函数开始。9.可以用关系运算符对字符串进行大小比较。10.For循环只能用于循环次数已确定的场合。试题二单选题(每题1分共15分)从A)、B)、C)、D)四个选项中,选出正确的一项。1.以下程序运行后,输出结果是#includestdio.hvoidmain(){chars[10]=abcde,*p;p=s+2;printf(%s\n,p);}A)cdeB)字符c的ASCII码值C)字符c的地址D)出错2.对下面函数f,写出f(f(3))的值。intf(intx){staticintk=0;x+=k--;returnx;}A)5B)3C)2D)43.以下程序运行后,输出结果是#definePT5#defineS(x)PT*x#includestdio.hvoidmain(){inta=1,b=2;printf(%d\n,S(a+b));}A)15B)7C)8D)无正确答案4.若有floata[3][4];正确的引用第3行第1列的元素是A)**(a+2)B)*(*a+2)C)a[3][1]D)a[3][0]5.语句printf(%.1f,%d\n,10./4,10/8);的输出是A)2.5,1.25B)2.5,1C)1,1.25D)2,1.256.下面对数组定义正确的是A)inta[];B)intn=5,a[n];C)intn,a[n]={1,2,3,4,5};D)inta[10/2];7.若有定义:structperson{charname[9];intage;};2personst[10]={{john,17},{paul,19},{Mary,18}};能输出字母M的语句是A)printf(%c,st[2].name);B)printf(%c,st[3].name[1]);C)printf(%c,st[2].name[1]);D)printf(%c,st[2].name[0]);8.不能把字符串:“Hello!”赋给数组b的语句是A)charb[10]={'H','e','l','l','o','!','\0'};B)charb[10];b=Hello!;C)charb[10];strcpy(b,Hello!);D)charb[10]=Hello!;9.若有inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;则表达式值为6的是A)*p+6B)*(p+6)C)*p+=5D)p+510.已知:int*p,m=5,n;正确的程序段是A)p=&n;scanf(%d,&p);B)p=&n;scanf(%d,*p);C)scanf(%d,&n);*p=n;D)p=&n;*p=m;11.下面程序的运行结果是:#includestdio.hvoidmain(){intx[4]={2,4,6,8},*p,**pp;p=x;pp=&p;printf(%d,*p);printf(%3d,**pp);}A)44B)24C)22D)4612.下面程序执行后a的值是#includestdio.hvoidmain(){inta,k=4,m=6,*p1=&k,*p2=&m;a=p1!=&m;printf(%d\n,a);}A)4B)1C)0D)运行时出错,a无定值13.下列语句序列中,能够将变量u、s中最大值赋给变量t的是A)if(us)t=u;t=s;B)t=s;if(us)t=u;C)if(us)t=s;elset=u;D)t=u;if(us)t=s;14.若有inta=7,b=12;则语句printf(%d,a&b);输出结果A)19B)9C)5D)415.若有FILE*fp;以“只读”方式打开文本文件a:\aa.dat,下列语句中正确的是A)fp=fopen(a:\aa.dat,w);B)fp=fopen(a:\aa.dat,r);C)fp=fopen(a:\\aa.dat,w);D)fp=fopen(a:\\aa.dat,r);试题三阅读程序题(每题4分,共24分)3写出读下列程序的输出结果1.#includestdio.hvoidmain(){charch;for(ch='a';ch'f';ch++){putchar(ch-32);putchar(ch);}}2.#includestdio.hvoidmain(){inti;for(i=1;i=4;i++){if((i%3)==0){printf($);continue;}elseprintf(*);printf(#);}}3.#includestdio.hvoidmain(){inti;for(i=1;i5;i++)switch(i%5){case5:printf(5);case3:printf(3);case1:printf(1);default:printf(%2d,i);}}4.#includestdio.hvoidmain(){intx[10];intt,i,j,m=1;for(i=0;i10;i++){m=-m;x[i]=m*i;}for(i=1;i10;i++){t=x[i];for(j=i-1;j=0;j--)if(tx[j])break;elsex[j+1]=x[j];x[j+1]=t;}for(i=0;i10;i++)printf(%3d,x[i]);}45.#includestdio.hvoidmain(){voidswap1(intx,inty);voidswap2(int*x,int*y);voidswap3(int&x,int&y);inta1,b1,a2,b2,a3,b3;a1=a2=a3=10;b1=b2=b3=5;swap1(a1,b1);swap2(&a2,&b2);swap3(a3,b3);printf(a1=%db1=%d\n,a1,b1);printf(a2=%db2=%d\n,a2,b2);printf(a3=%db3=%d\n,a3,b3);}voidswap1(intx,inty){intt;t=x;x=y;y=t;}voidswap2(int*x,int*y){intt;t=*x;*x=*y;*y=t;}voidswap3(int&x,int&y){intt;t=x;x=y;y=t;}6.structnode{intnum;node*next;};intfun(node*h){ints,n=0,i;node*p=h;while(p!=NULL){for(s=0,i=1;ip-num;i++)if((p-num)%i==0)s+=i;if(s==p-num)n++;p=p-next;}returnn;}写出执行语句“printf(“%d\n”,fun(head));”的输出结果。head是头指针,以head为头指针的链表各结点的当前值如下所示:试题四程序填空题(每空2分,共24分)1.下列程序读入时间数值,将其加一秒后输出,时间格式为hh:mm:ss,即时:分:秒,当小时7NULL46528head5数等于24时,置为0.#includestdio.hstructstime{inthour,minute,second;};voidmain(void){stimetime;scanf(“%d:%d:%d”,1);time.second++;if(time.second==60){2;time.second=0;if(time.minute==60){time.hour++;time.minute=0;if(3)time.hour=0;}}printf(“%d:%d:%d”,time.hour,time.minute,time.second);}2.以下程序建立一个如下所示的二维数组,并按以下格式输出。1000102020003000404050005#includestdio.hvoidmain(){inta[5][5]={0};int*p[5],i,j;for(i=0;i5;i++)p[i]=1;for(i=0;i5;i++){*(p[i]+i)=i+1;*(p[i]+2)=i+1;}for(i=0;i5;i++){for(j=0;j5;j++)printf(%2d,p[i][j]);3;}}3.以下程序的功能是:从键盘上输入一行字符串(不超过80个字符),把该字符串中的所有小写字母改写后依次输出到c:\bb.txt文件中(其它字符不输出)。小写字母改写规则如下:'a'改'b','b'改'c',……'x'改'y','y'改'z','z'改'a'。#includestdio.h6#includestdlib.hvoidmain(){FILE*fp;charstr[81];inti=0;if((fp=fopen(1))==NULL){printf(can'topenthefile.\n);exit(0);}gets(str);while(str[i]!='\0'){if(2){if(str[i]=='z')str[i]='a';elsestr[i]=str[i]+1;3}i++;}fclose(fp);}4.以下程序的功能是:输出{2m,3n|m=1,n=1}中由小到大排列的前32项数,并且每行8个数。(如2,3,4,8,9,16,27,32)#includestdio.hvoidmain(){longm2,n3;intk;m2=2;n3=3;k=0;while(k32){if(1){printf(%ld,m2);m2*=2;}else{printf(%ld,n3);2;}k++;if(3)printf(\n);}}试题五编程序(共27分)(一).输入100个同学一门课的考试成绩,求该门课程的平均成绩,并在屏幕上输出。(二).输入一个3X4的矩阵,输出最小元素值,以及它的行号和列号。(如有多个最小值,求其中的一个)(三).编写函数,将字符串中的指定字符删除,并返回该字符串的地址。(如:字符串“cbaccbg,指定的删除字符'c',则删除后的字符串babg)。
本文标题:《C语言程序设计》综合练习试卷(一)
链接地址:https://www.777doc.com/doc-2864537 .html