



版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第一套试题ー、单项选择题结果是 〇intscore;(15个小题,每题2^defineF(x)x*x}stu;分,共30分):voidmain()A.struct是定义结1.ー个C语言程序{inta=2,b=l;构体类型的关键字的执行是从 〇prinft("%d\n",FB.stu是结构体变量A.main函数开始,(a+b));名直到main函数结束)C.num,name,scoreB,第一个函数开始,A.3B.5C.8D.9都是结构体成员名直到最后ー个函数4.读以下程序段,D.stu是结构体类型结束判断a的值为 〇名C,第一个函数开始,int*p,a=10,b=l;6.已知字母A的直到最后ー个语句p=&a;ASCII码为十进制数结束a=*p+b;65,变量chi为字符D.main函数开始,A.12B.10C.11D.编型,则执行语句直到最后ー个函数译出错chl='A'+5结束5.根据以下说明语'2';后,chi中的2.正确的自定义标句,则下面的叙述中值是 〇识符是 〇不正确的是 〇A.DB.67C.ー个A.x_2B.a_bC.2sumstructstudent不确定的值D.CD.$123{intnum;7.以下哪种方法不3.下面程序的运行charname[10];能对ー维数组进行
正确的初始化能实现将n中的数值{x-x*x;}while(!保留小数点后两位,x);A.inta[]={1,2,3};第三位进行四舍五A.死循环B,循环B.inta[5]={};入的表达式是体执行二次C.循环C.int体执行一次D.有语a[5]=(l,2,3,4,5);A.n-(n*100+0.5)/法错误D.int100.013.若有下列定义:a[卜{2,3,4*5,6};B.n-n*100+0.5/10charc[5],*p-c;则8.已正确定义字符0.0对c数组元素地址的变量chi,下面能正C.m-n*100+0.5,n-正确引用是 〇确赋值的是 〇m/100.0A.p+2B.&c[5]A.chi="a”;D.n-(n/100+0.5)*C.c++D.&.cB.chi='a';100.014.当调用函数时,C.chi="C语言程序11.设i-2,j-3,则实参是一个数组名,设计”;D.chl=表达式(i++)*(++j)则向函数传送的是'C语言程序设计’;的值为 〇 〇9.逗号表达式A.6B.8C.9D.12A.数组的长度B,数(a-3*4,a*4),a+512.关于以下程序组每个元素中的值的值是 〇段,说法正确的是C.数组每ー个元素A.53B.17C.20D.48的地址D,数组的首10.设n为float型,X—1;地址m为int型,则以下do15.文件中利用fopen函数打开文件,如果以只读方式打开二进制文件,则以下打开方式正确的是〇A.r+B.rbC.wbD.ab二、填空题(5个小题,每题2分,共10分):.若有inti=l,j=7,a;执行语句a=i+(j%4!=0);后,a的值是.执行以下程序后,运行结果是#include<stdio.h>voidmain(){inta,b;for(a=l,b=l;aく=100;a++){if(b>=10)break;if(b%3==l){b+=3;continue;})printf("%d\n",a)J.源程序中用到了strcat函数,需要包含的头文件(即库文件)为ー〇.执行以下程序后,运行结果是#include<stdio.h>voidmain(){inta=2;floatn=5.888,b;b=a+(int)n;printf("%f\n”,b);).语句scanf("a=%d,b=%d",&a,&b);若将3和4分别输入给a和b,则正确的输入方式为<CR>O三、程序分析题,写出程序的运行结果(5个小题,每题4分,共20分):1.#include<stdio.h>voidmain(){intx=l,y=0,a=0,b=0;switch(x){case1:switch(y){case0:a++;break;b++;break;)a++;b++;break;}printf("a=%d,b=%d\n”,a,b);}2.在运行以下程序时,输入"TurboC++3.0”,写出程序的运行结果。#include<stdio.h>voidmain(){charstr[40];printf("Inputastring:");scanf("%s",str);puts(str);}#include<stdio.h>voidf(inty){staticinti=5;intj=3;j++;printf("%d+%d+%d=%d\n",i,j,y,i+j+y);i*=2;}voidmain(){intx;for(x=l;xく=2;++x)f(x);)#include<stdio.h>voidswap(int*pa,int*pb){int*p;p=pa;pa=pb;pb=p;}voidmain(){inta=10,b=20;int*pl=&a,*p2=&b;if(a<b)swap(pl,p2);printf("%d,%d\n",a,b);)#include<stdio.h>inta=5;intb=7;intplus(intx,inty){intz;z=x+y;return(z);}voidmain(){inta=4,b=5,c;c=plus(a,b);printf("a+b=%d\n",c);}四、程序填空题,将下面程序补充完整(10个填空,每空2分,共20分):1.输出九九表。#include“stdio.h"voidmain(){inti,j;for(i=l;iく=9;i++){for(.i^l;(D;j++)printf("%3d*%d=%2d”,i,j,i*j);a[10])lengthofstris%d②;{inti;”,m);)floatsum=0;))for(i=0;i<10;i++)intlength(char*p)2.利用函数形式,sum=sum+a[i];{intn=0;求X数组所有元素的②;while(②){n++;平均值并输出。)p++;}ttinclude3.编写ー个计算字returnn;}“stdio.h"符串长度的函数4.输入10个整数,①;lengtho按每行3个数输出这voidmain()#include些整数,最后输出10{float“stdio.h”个整数的平均值。avg,x[10]={1.2,3.voidmain()#include6,4.5,5.1,6.9,7,8{charstr[20];“stdio.h”,9,10.5,11.3};intm;voidmain()avg=average(x);intlength(char{inti,n=10,a[10];printf("The*P);floatavg=0;averageprintf("Inputafor(i=0;i<n;i++)is%5.2f\n”,avg);string:\n");scanf("%d”,&a[i)gets(str);]);float①;for(i=0;i<n;i++)average(floatprintf("\nthe{if(①)printf("\n");printf("%d”,a[i]);)for(i=0;i<n;i++)②;avg=avg/n;printf("average:%f\n”,avg);)5.将字符数组中大写字符改为小写字符,将小写字符改为大写字符,利用指针完成。ttinclude"stdio.h"voidmain()一.单项选择题(15个小题,每小题2分,{charstr[30]:"WelcometoCLanguagev,*cp=str;while(*cp){if(*cp>='A'&&*cpく=<Z,)①;elseif(*cp>='a'&&*cP<='z')*cp二*cp-32;②;)puts(str);)五、程序设计题(3第二套试题共30分):1.在一个源程序中,个小题,共20分):1.设三个整型变量a,b,c»编写程序为a,b,c输入数据,并要求a,b,c按由小到大排序后输出。(5分)2.学生成绩可分为五分制与百分制,编程将百分制转换为五分制输出。(5分)3.编写排序函数sort(inta[]),实现对数组a中的元素进行排序,并利用该函数,从键盘输入若干个数(如10个)将其按升序排列。(10分)main函数的位置A,必须在最前面B,必须在系统调用的库函数的后面C.没有具体要求D,必须在最后.正确的用户自定义标识符是〇A.a=2B.a+bC.nameD.default.以下叙述中正确的是〇break语句只能用于switch语句体中continue语句的作用是:使程序的执行流程跳出包含它的所有循环break语句只能用在循环体内和switch语句体内D.在循环体内使用break语句和continue语句的作用相同.C语言中最简单的数据类型包括A,整型、实型、逻辑型B,整型、实型、字符型C.整型、字符型、逻辑型D,字符型、实型、逻辑型5.设ch是char型变量,其值为‘A',且有表达式ch=(ch>='A'&&chく=ぐ,)?(ch+32):ch,该表达式的值为A.AB.aC.ZD.z.以下叙述正确的是〇A,用do-while语句构成的循环不能用其它语句构成的循环来代替B1用do-while语句构成的循环只能用break语句退出C,用do-while语句构成循环时,当while后的表达式成立时结束循环D.用do-while语句构成循环时,当while后的表达式不成立时结束循环.为了判断两个字符串si和s2是否相等,应当使用〇if(sl==s2)if(sl=s2)if(strcmp(si,s2))真if(strcmp(si,s2)-0)假时,数组元素的下标x[5]=(0,0,0);8.当把以下四个表表达式必须是常量C.intx[]={〇};达式用作if语句的整型表达式D.intx[5]={2*3};控制表达式时,有一D.对整型数组来说,12,下列叙述中错误个选项与其它三个未初始化时,各数组的是 〇选项含义不同,这个元素的值是不确定A.主函数中定义的选项是 。的变量在整个程序中A.k%2(k/2)10.有字符数组都是有效的B.k%2==lx[50],y[50],则正B.在其他函数中定C.(k%2)!=0确的输出语句是义的变量,没有特殊D.!k%2-1声明在主函数中不9.下列是关于数组A.printf("%s",能使用的叙述,不正确的是"%s",x,y);C.形式参数也是局B.puts(x);部变量A.在定义数组时,puts(y);D.复合语句中定义数组名前的类型是C.putchar(x,y);的变量只在该复合指明数组各元素的D.puts(x,y);语句中有效类型11.以下对ー维数组13.设有函数原型、B,数组各元素的类a进行不正确初始化ー维数组和变量定型是相同的,而且是的是 〇义如下:有序的A.intx[5]={};函数原型voidC,在引用数组元素B.intfun(intx[],int
n);*P=&y;1.结构化程序设计数组定义intC.char的三种基本程序结a[4]={l,2,3,4};ch[12]="Hello构为顺序结构、选择floatWorld",*c=ch;结构和 〇b[4]={1.0,2.0,3.0D.char2.条件,4.0};*c,c=,x,,c=&c;“30くx<80且变量定义int15.以“只读”方式x#50”的C语言表m=4,value;打开文本文件达式是 〇下列函数调用中,正aa.dat,下列语句中3.C语言源程序文确的是 〇(函哪ー个是正确的件的后缀是数返回值?)〇A.fun(a,m);A.fp=fopen("aa.4.有如下定义:intB.value=fun(a[l]dat〃,〃r+〃);m=l,n=l,x=3;则执,m);B.fp=fopen("aa.行语句:if(!n)C.value=fun(a,4);dat","a〃);x+=l;if(m)x-=2;D.fun(b,m);C.fp=fopen("aa.后,x的值是14.以下对指针定义dat","wb");合法的语句是D.fp=fopen("aa.5.执行如下语句:dat","r");inti=10;A.int*p=&x=3;二、填空题(15个小doB.int题,每空1分,共!5{i=i+10;}while(y[5]={l,2,3,4,5},分):i>20)5后,i的值是
x[5]={l,3,5,7,9},的赋值语句是6.若a、b、c和d*p=&x[2];则执行语都是int型变量,则句12.C语言提供的预执行表达式printf(〃%d",*p);处理命令有d=(a=2,b=4,c=a*b)的输出结果是 、文件包含:后,d的值为和条件编译三种。11.有如下结构体13.设有数组定义:7,在使用数组元素定义:charstringE]=的过程中,C语言编structdate"Student”,则数组译系统 (是{intyear;所占的存储空间为/否)检查下标“越intmonth; 个字节。界”。intday;14.指针变量只能存8.设m=4,n=7,表);放内存储单元的达式x=(m++)*(一n)structworklist〇的值是 〇{charname[20];15.在C语言中,当9.执行如下语句:charsex;函数返回值的类型intk;k值不确定structdate缺省时,表示该函数for(k=0:k=l;k++);birthday;返回值的类型是则该循环执行的次}person;〇数是 〇若对结构体变量三、写出程序的运行10.有如下定义:person的出生年份结果(5个小题,每int赋值为1990,则正确小题4分,共20分):
1.ttincludeb[i]*=2;c=plus(a+b);“stdio.h")printf("a+b=%d\n"voidmain()voidmain(),c);{int{int)x=l,y=0,a=0,b=0;a[10]={l,2,3,4,5,4.ttincludeswitch(x)6,7,8,9,10);"stdio.h"{case1:switch(y)f(a);intd=l;{case0:a++;for(i=0;i<10;i++)fun(intp)break;printf("%d”,a[i{staticintd=5;case1:b++;break;]);d+=p;))return(d);case2:a++;b++;3.ttinclude)break;"stdio.h"voidmain())inta=5,b=7;{inta-3;printf(ua=%d,b=%intplus(intx,intprintf("%d\n",fund\n”,a,b);y)(a+fun(d)));){intz;)2.ttincludez=x+y;5.#include“stdio.h"return(z);"stdio.h"voidf(intb[]))voidmain(){inti;voidmain(){charfor(i=2;i<6;i++){inta=4,b=5,c;ch[15]={"abcdefg
1.输入10个整数,)charc,*cpl,*cp2;按每行3个数输出这2.利用选择排序法inti,n=0;些整数,最后输出10使数组中的数按照cpl=ch;个整数的平均值。从大到小的次序(升cp2=ch;#include"stdio.h"序)排列。while(*cp2!=’、〇voidmain()#include"stdio.h",){intttdefineN10{n++;cp2++;}i,n=10,a[10];voidmain()cp2—;floatavg=0;{intn=n/2;for(i=0;i<n;i++)a[N]={3,8,5,2,10,for(i=0;i<n;i++)scanf("%d”,&a[i9,4,1,7,6},i,j,r,{c=*cpl;]);temp;*cpl=*cp2;*cp2=c;for(i=0;i<n;i++)for(i=0;i<N-l;i++)cpl++;cp2一:{if(i%3==0)(1){(1))printf("%d”,a[ifor(j=i+l;j<N;j++)puts(ch);]);if((2))r=j;))if(r!=i)四、完善程序,在空for(i=0;i<n;i++){temp=a[r];白处填上相应的语avg+=a[i];a[r]=a[i];句内容(5个小题,(2)a[i]=temp;}每小题4分,共20printf(aaverage=)分)%f\n",avg);printf("thearrayaftersort:\nz/);for(i=0;i<N;i++)printf("%5d",a[i]);).输出九九乘法表。ttinclude"stdio.h"voidmain(){inti,j;for(i=l;iく=9;i++){for((1))printf(/z%3d*%d=%-3d”,⑵);printf("\n");)).通过调用子函数average»分别求出主函数main中x和y数组的平均值并输出。#include"stdio.h"floataverage((1)){inti;floatsum=0;for(i=0;i<n;i++)sum=sum+a[i];(2))voidmain(){floatx[10]={l,2,3,4,5,6,7,8,9,10};floaty[5]={1.5,2.5,3.5,4.5,5.5};floatavg;avg=average(x,10)printf("Thearrayxaverageis%5.2f\n",avg);avg=average(y,5);printf("Thearrayyaverageis%5.2f\n",avg);)5.将字符数组中大写字符改为小写字符,将小写字符改为大写字符。#include"stdio.h"voidmain(){charstr[30]="1amastring",*cp;(1)while(*cp){if(*cp>='A'&&*cpく=<Z,)*cp=*cp+32;elseif(*cpl>='a'&&*cpく='z')*cp二*cp-32;else*cp=*cp;个小题,共15分):拟C的ustring,h"(2)1.求1!-2!+3!函数库内的计算字)-4!+…-10!〇(7符串长度的函数puts(str);分)strlen()〇(8分))2.编写ー个计算字五、程序设计题(2符串长度的函数,模第三套试题ー、选择题(15个源程序中,()。必须是整型的运算小题,每小题2分,A.必须有一个主函符是ー〇共30分):数B.可以有多个主A.%B./C.!D.*1、C语言编译程序是函数5、若变量已正确说C,必须有主函数和明为int类型,要给A.C程序的机器语言其它函数D.可以没a、b、c输入数据,版本B,ー组机器语有主函数以下正确的输入语言指令3、以下选项中不合句是ー〇C,将C源程序编译法的用户标识符是A.read(a,b,c);成目标程序的程序 〇B.scanf(^d,%d,%D,由制造厂家提供A.ABCB.abcC.a_bcd”,&a,&b,&c);的ー套应用软件D.ab.cC.scanf(//%d%d%d/,2、在ー个C语言的4、C语言中运算对象,&a&b&c);
D.scanf(/z%d%d%d,z8、若有定义:intA.与参数x的类型,a,b,c);x,*pb;则以下正确相同B.是voidC.是6、为表示关系的赋值表达式是intD,无法确定x2y2z,应使用C11、在C语言程序中,语言表达式 〇A.pb=&xB.pb=x下列说法正确的是A.(x>=y)&(y>=z)C.*pb=&xD.*pb=*B.(x>=y)AND(y〉=z)9、C语言中函数返回A,函数的定义不可C.x>=y>=z 值的类型是由 以嵌套,但函数的调D.(x>=y)&&(y>=z)决定。用可以嵌套7、以下对二维数组aA.return语句中的B,函数的定义可以进行不正确初始化表达式类型B.调用嵌套,但函数的调用的是 〇函数的主调函数类不可以嵌套A.int型C.函数的定义和调a[][3]={3,2,1,1,C.调用函数时临时用都不可以嵌套2,3};B.int决定D,定义函数时D,函数的定义和调a[][3>{{3}2,1},所指定的函数类型用都可以嵌套(1,2,3}};10、设有如下函数:12、下述对C语言字C.intfff(floatx)符数组的描述中错a[2][3]={{3,2,1},{printf("%d\n",误的是 〇{1,2,3}};D.intx*x);}A,字符数组可以存a[][]={{3,2,1},请问fff函数的返回放字符串{1,2,3}};值类型是一〇B,字符数组中的字
符串可以整体输入、D,用dowhile语句元输出构成循环时,只有在C.程序运行时为结C.可以在赋值语句while后的表达式为构体变量a分配6个中通过赋值运算符零时结束循环字节存储单元“二”对字符数组整14、()是不正确D,不能将结构体类体赋值的C语言赋值语句。型说明与变量定义D.不可以用算术运A.x=l,y=2;B.x++;紧凑写在ー起算符对字符数组中C.x=y=5;二、判断题(10个的字符串进行运算D.y=int(x);小题,每小题1分,13、以下叙述正确的15、若有如下说明,共10分):是 〇则_ 的叙述是正1、C语言是计算机高A.do_while语句构确的。级语言。()成的循环不能用其structst2、C语言中用非零表它语句构成的循环{inta;示逻辑值“真”。来代替intb[2];()B.do_while语句构}a;3、表达式3.5+3/5成的循环只能用A.结构体变量a与的计算结果是4.Ebreak语句退出结构体成员a同名,()C.用dowhile语句定义是非法的4、能够实现局部翻构成循环时,只有在B.程序只有在执行转(0变1,1变0)while后的表达式为到该定义时オ为结的位运算是求反。非零时结束循环构体st分配存储单()5、若有以下定义:doublew[10];则w数组元素下标的上界是9〇()6、C语言中的简单数据类型只有整型、实型两种。()7、C语言源程序的基本单位是函数。()8、设有语句chara='\72';则变量a声明不合法。()9、printf("%d\n",strlenC\nl23\V));的输出结果是7。()10、用在循环结构中,可以结束本次循环的语句是continueo()三、填空题(9个小题,每空2分,共20分):1>C语言源程序文件的扩展名是ー〇2、程序设计的三种基本结构是顺序结キ勾、、〇3、设ch是char型变量,其值为A,且有表达式:ch=(ch>='A'&&chく='Z')?(ch+32):ch,该表达式的值为4、调用C语言对字符串处理的库函数时,在#include命令行中应包含的头文件是〇5、终止switch语句执行的语句是6、用数组名作为函数参数是地址传递方式。地址传递是(单向/双向)传递。7、在C语言中,所谓“指针”就是8、C程序的main函数是否允许有参数。—(是/否)。9、文件打开时使用的函数是。四、读下面程序,从选择项选出相应执行结果(每小题4分,共20分):1、main(){chara口:“Iamaboy.",b[20],*pl,*p2;inti;pl=a;p2=b;for(;*pl!=‘、〇';pl++,p2++)*p2=*pl;*p2='、0';printf("stringbIS:);for(i=0;b[i]!='、。';i++)printf("%c",b[i]);)执行结果是()2、main(){inta=0,i;for(i=l;i<5;i++){switch(i){case0:case3:a+=2;a+=3;default:a+=5;printf("%d\n",a);)执行结果是()3、#defineN2#defineMN+1main(){inti;for(i=l;i<=M;i++);printf("%d\n",i);)执行结果是()4、main(){inta[]={2,4,6,8,10};inty=l,*p,x;p=&a[l];for(x=0;x<3;x++)y+=*(p+x);printf("%d\n",y);)执行结果是()5、#defineMIN(x,y)(x)<(y)?(x):(y)main(){inti,j,k;i=10;j=15;k=l〇・MIN(i,j);printf("%d\n",k);)执行结果是()程序选择项:A.31B.stringbis:Iamaboy.C.100D.3E.19五、程序填空题(3个小题,每空2分,共20分):(根据程序要求,将程序补充完整,每空只能填写一条语句)1、求1+2+—+100的和main()inti,① ;i=l;do{sum=sum+i;②;}while((3));printfsum);)2、求10〇〜200间的全部素数。#include<math.h>main()Iintm,k,i,n=0;for(m=101;④;m=m+2){k=sqrt(m);for(i=2;i<=k;i++)ー、选择题(20个小题,每小题2分,共if(m%i==0)⑤;if(i>=k+l){printf("%d”,m);@ :}if(n%10==0)printf("\n");)printf('\n");)3、用起泡法对10个输入数排序(从小到大)。main()iinta[ll];int_⑦ ;printf(,zinput10第四套试题40分):1、以下不正确的Cnumbers:\n");for(i=l;iく11;i++)scanf("%d",_⑧__);printf('\n");for(j=l;jく=9;j++)for(i=l;—⑨—;i++)if(a[i]>a[i+l]){t=a[i];a[i]=a[i+1];—⑩—;}printf("thesortednumbers:\n");for(i=l;i<ll;i++)printf("%d",a[i]);语言标识符是ー〇A.ABCB.abcC.a_bcD.ab.c2、设a,b和c都是int型变量,且a=3,b=4,c=5,则下面的表达式中,值为。的表达式是ー〇'a'&&aく=baIIb+c&&bc!((aくb)&&!c||1)3、若有以下定义和语句:charcl='b',c2='e'printf(“/d,%c\nw,c2-cl,c2-'a'+,A');则输出结果是ー〇A.2,MB.3,EC.2,eD.输入项与对应的格式控制不一致,输出结果不确定4、当运行以下程序时,在键盘上从第一列开始输入9876543210<CR>(此处くCR>代表Enter),则程序的输出结果是ー〇main(){inta;floatb,c;scanf(u%2d%3f%4f",&a,&b,&c);printf(a\na=%d,b=%f,c=%f\n”,a,b,c);)a=98,b=765,c=4321a=10,b=432,c=8765a=98,b=765.000000,c=4321.000000a=98,b=765.0,c=4321.05、设有如下函数定义:intf(char*s){char*p=s;while(*p!=’、〇')p++;return(p-s);)如果在主程序中用下面的语句调用上述函数,则输出结果为〇printf("%d\n",f("goodbye!"));A.3B.6C.8D.06、以下程序的输出结果是ー〇main(){intw=4,x=3,y=2,z=l;printf("%d\n",(w<x?w:z<y?z:x));)A.1B.2C.3D.47、以下程序段的输出结果是ー〇intk,j,s;for(k=2;k<6;k++,k++){s=l;for(j=k;j<6;j++)s+=j;)printf("/d\n",s);A.9B.1C.11D.108、以下叙述正确的是ー〇do_while语句构成的循环不能用其它语句构成的循环来代替do_while语句构成的循环只能用break语句退出C.用dowhile语句构成循环时,只有在while后的表达式为非零:时结束循环D.用dowhile语句构成循环时,只有在while后的表达式为零时结束循环9、以下函数调用语句中,含有的实参个数是ー〇func((expl,exp2),(exp3,exp4,exp5))1B.2C.4D.510、以下程序的输出结果是ー。doublef(intn){inti;doubles=l.0;for(i=l;i〈=n;i++)s+=l.0/i;returns;)main(){inti,m=3;floata=0.0;for(i=0;i<m;i++)a+=f(i);printf("%f\n”,a);)A.5.5000003.0000004.000000D.8.2511、以下程序段的输出结果是ー〇inti,j,m=0;for(i=l;iく=15;i+=4)for(j=3;jく=19;j+=4)m++;printf("%d\n",m);A.12B.15C.20D.2512、以下程序中若第ー个printf语句输出的是194,则第二个printf语句输出结果是ー〇main(){inta[]={1,2,3,4,5,6,7,8,9,10),*p;P=a;printf("强x\n",p);printf("%x\n",p+9);)A.212B.204C.Ia4Ia613、若有定义:inta[]={0,1,2,3,4,5,6,7,8,9},*p=a,i;其中〇くiく9,则对a数组元素的引用不正确的是〇A.a[p-a]B.*(&a[i])C.p[i]D.*(*(a+i))14、以下程序的输出结果是ー〇main(){intaa[3][3]={{2},{4},{6}},i,*p=&aa[0][〇];for(i=0;i<2;i++){if(i==0)aa[i][i+l]=*p+l;else++p;printf("%d",*p))printf("\n");A.23B.26C.33D.3615、执行下列程序后,y的值是ー〇main(){inta[]={2,4,6,8,10};inty=l,*p,x;p=&a[l];for(x=0;x<3;x++)y+=*(p+x);printf("%d\n",y);)A.17B.18C.19D.2016、以下程序的输出结果是ー。voidsub(floatx,float*y,float*z){*y=*yT.0;*z二*z+x;)while(一chp>=&b[0构体变量a分配6个main()])putchar(*chp);字节存储单元{floatputchar('\n');D,不能将结构体类a=2.5,b=9.0,*pa,*)型说明与变量定义pb;A.Goodbye紧凑写在ー起pa=&a;pb=&b;B.gOODBYEC,无任19、设有如下定义:sub(b-a,pa,pa);何输出D.eybdooGstructstdprintf( ,a18、若有如下说明,{inta;);则—的叙述是正floatb;)确的。}data,*p;A.9.000000structst若有p=&data;则对B.1.500000{inta;data中的成员变量aC.8.000000intb[2];的正确引用是 〇D.10.500000}a;A.(*p).data,a17、下面程序的输出A.结构体变量a与B.(*p).a结果是ー〇结构体成员a同名,C.p->data.a#include定义是非法的D.p.data,a“stdio.h"B.程序只有在执行20、以下程序的输出main()到该定义时オ为结结果是ー〇{staticcharb[]=构体st分配存储单main()“Goodbye”;元{charx=040;char*chp=&b[7];C.程序运行时为结printf("%d\n",x=Xくく1);)A.100B.160C.120D.64二、填空题(10个小题,每小题2分,共20分):1、若a是int型变量,则执行表达式a=25/3%3后,a的值为〇2、C语言中用表示逻辑值“真”。3、用在循环结构中,可以结束本次循环的语句是ー〇4、用数组名作为函数参数是地址传递方式。地址传递是(单向/双向)传递。5、在二维数组初始化时,可以省略数组的—(行下标/列下标),系统会根据初值的个数,算出该下标的大小。6、若输入字符'A',在以下while语句执行后ch的值为〇while(ch=getchar()=='A');7、所谓“指针”,就是〇8、设有宏定义:#defineMUL(z)(z)*(z),则执行以下语句后,输出结果为〇printf("%d\n",MUL(l+2)+3);9、若有定义和语句:charstr[]="ABCD”,*p=str;printf("%d\n”,*(p+4));则输出结果是ー〇10、能够实现局部翻转(0变1,1变〇)的位运算是ー〇三、读下面程序,写出执行结果(4个小题,每小题5分,共20分):1、若运行以下程序时,从第一列开始输入数据:2473<CR>(くCR>代表Enter),写出程序的执行结果。#include“stdio.h"main(){charc;while((c=getchar(,z);tr);))!=’\n'))}switch(c-,2')try(intx,int4、#include{case0:y,intz)"stdio.h"case1:{z=x+y;x=x*x;#defineNUM8putchar(c+4);y-y*y;voidinvert(intcase2:printf(u(l)x=%d,*a,intn);putchar(c+4);y=%d,z=%d\n”,x,ymain()break;,z);{intcase3:)a[NUM]-{10,20,30,putchar(c+3);3、ttinclude40,50,60,70,80},idefault:“stdio.h”putchar(c+2);ttincludeinvert(a,NUM);break;“string,h”for(i=0;i<NUM;i++))main()printf("%4d”,a[printf("\n");{chari]);)*pl="abc",*p2=printf("\n");2、main()“ABC",str[50]=}{intx=2,y=3,z=0;“ ”xyz;voidinvert(inttry(x,y,z);strcpy(str+2,strc*a,intn)printf("(2)x=%d,at(pl,p2));{inti,j,t;y=%d,z二%d\n",x,yprintf("%s\n",si=0;j=n-l;
while(i<j)t=lーレ(2*2)T/(3*入的10个字符串中{t=a[i];3)—•—1/(m*m)〇通过比较,找出最小a[i]=a[j];a[ホt;例如,若m=5,则应和最大的字符串进i++;j—;输出0.536389O行输出。)要求:利用scanf函要求:利用二维字符)数输入m的值。数组。四、编程题(2个小利用子函数形式,m利用gets函数进行题,每小题10分,充当参数,不能只利输入,puts函数进行共20分):用main函数形式实输出。1、编写程序,计算现。如下公式的值:2、编写程序,从输第五套试题ー、单项选择题C,第一个函数开始,(ch+32):ch,该(30个小题,每题2直到最后ー个语句表达式的值为分,共60分):结束D.main函数开 〇1.ー个C语言程序始,直到最后ー个函A.AB.aC.ZD.z的执行是从 〇数结束3.在C语言中,合A.main函数开始,2.设ch是char型法的字符常量是直到main函数结束变量,其值为‘A,,B,第一个函数开始,且有表达式:ch=A.'\084'直到最后ー个函数(ch>='A'&&B.'\x43'结束chく='Z')?C.'ab'D.“、0”
4.当运行以下程序=4321.0printf("%d\n",y时,在键盘上从第一5.以下叙述正确的=x/y);}列开始输入是 〇A.0B.1C.3D.不9876543210<CR>(此A.do_while语句构确定的值处くCR>代表Enter),成的循环不能用其7.以下程序段的输则程序的输出结果它语句构成的循环出结果是 〇是 〇来代替intk,j,s;main()B.dowhile语句构for(k=2;k<6;k++,{inta;floatb,c;成的循环只能用k++)scanf(M%2d%3f%4fbreak语句退出{s=l;",&a,&b,&c);C.用dowhile语句for(j=k;j<6;j++)printf("\na=%d,b构成循环时,只有在s+=j;=%f,c=%f\n”,a,b,while后的表达式为)c);非零时结束循环printf("%d\n”,s)D.用dowhile语句);A.a=98,b=765,c=4构成循环时,只有在A.9B.1C.11D.10321while后的表达式为8.设有如下函数:B.a=10,b=432,c=8零时结束循环ggg(float*x)7656,以下的序的输出{printf("%d\n"C.a=98,b=765.000结果是 〇,*x);}则函数的类000,c=4321.000000main()型是 〇D.a=98,b=765.0,c{intx=10,y-3;A,与参数x的类型
相同B.voidC.int);12.若a、b、cl、c2、D,无法确定)x、y均是整型变量,9.C语言源程序的基A.5.500000正确的switch语句本单位是 。B.3.000000是 。A,过程B,函数C.4.000000D.8.25A.switch(a+b);C.子程序D.标识11.以下程序的输出{case1:y=a+b;符结果是 〇break;10.以下程序的输出f(inta)case3:y=a-b;结果是 〇{intb;staticintbreak;doublef(intn)c=3;}{inti;doubleb++;c++;B.switch(a*a+b*b)s=L0;return(a+b+c);{case3;for(i=l;i〈=n;i++))case1:y=a+b;s+=l.0/i;main()break;returns;{inta=2,i;case3:y=a-b;)for(i=0;i<3;i++)break;main()printf("%d\n”,fC.switcha{inti,m=3;float(a));{casecl:y=a-b;a=0.0;)break;for(i=0;i<m;i++)A.7B.7C.7D.7casec2:y=a*b;a+=f⑴;89107break;printf("/f\n",a911137default:x=a+b;D.switch(a-b){default:y=a*b;break;case3:case4:x=a+b;break;case10:case11:y=a+b;break;13.在C语言中,以下所列的各函数首部正确的是〇A.voidplay(vara:Integer,varb:Integer)B.voidplay(inta,b)C.voidplay(inta,intb)D.voidplay(aAsInteger,bAsInteger).设x和y均为int型变量,则以下语句:x+=y;y=x-y;x-=y;的功能是A.把x和y按从大到小排序B.把x和y按从小到大排序C,无确定结果D,交换x和y中的值.在执行以下程序时,如果从键盘上输入;ABCdefく回车),则输出为〇ttinclude<stdio.h>main(){charch;while((ch=getchar())!=’\n'){if(ch>='A'&&chく=Z)ch=ch+32;elseif(ch>='a'&&chく='z')ch=ch-32;printf("%c",ch)A.ABCdefB.abcDEFC.abcD.DEF16.下列程序的运行结果是。main(){inti,j,x=0;for(i=0;i<2;i++){x++;for(j=0;jく=3;j++){if(j%2)break;x++;}x++;)printf("x=%d",x);x=4B.x=8C.x=6D.x=1217.为表示关系x》y2z,应使用的C语言表达式是A.(x>=y)&&(y>=z)(x>=y)AND(y>=z)(x〉=y>=z)(x>=y)&(y>=z)18.设有语句chara='\72';则变量A.包含1个字符B.包含2个字符C.包含3个字符D.说明不合法19.下面程序的输出结果是〇ttinclude“stdio.h"main(){intnum=0;while(numく=2){num++;printf("%d\n",num);))A.1B.2C.1D.122320.下面程序的输出结果是〇voidfun(int*x,int*y){printf(“/d%d“,*x,*y);*x=3;*y=4;}main(){intx=l,y=2;fun(&y,&x);printf(<<%d%dw,x,y);}A.2143B.1212C.1234D.211221.下面程序的输出结果是〇#include“stdio.h"#include"string,h”main(){char*pl="abc",*p2=“ABC",str[50]=xyz;strcpy(str+2,strcat(pl,p2));printf("%s\n”,str);)A.xyzabcABCB.zabcABCfor(i=l;i〈=NUM;printf(“版、n”,sC.yzabcABCi++););则结果是 〇D.xyabcABCprintf("%d\n",iA.abedB.a22.以下程序的输出);C.“abed”D.编结果是 。)译不通过voidprtv(int*x)A.5B.6C.8D.926.执行下列程序{printf("%d\n"24.以下对二维数组后,y的值是 〇,++*x);}a进行不正确初始化main()main()的是 〇{int{inta=25;A.inta[]={2,4,6,8,10}prtv(&a);a[][3]={3,2,1,1,,y=l,*p,x;)2,3};B.intp=&a[l];A.23B.24C.25D.26a[][3]={{3,2,1},for(x=0;x<3;x++)23.以下程序中的{1,2,3}};y+=*(p+x);for循环执行的次数C.intprintf(“%d\n”,y是 〇a[2][3]={{3,2,1},);ftdefineN2(1,2,3}};D.int}#defineMN+1a[][]={{3}2,1),A.17B.18C.19D.20#defineNUM(1,2,3));27.以下程序的输出(M+l)*M/225.若有定义和语结果是 〇main()句;chars[10];main(){inti;s="abed”;{char
s[]="ABCD”,*p;体定义:{intfor(p=s;p<s+4;p++)structdate{intaa[3][3]={⑵,⑷printf("%s\n”,pyear,month,day;};,{6}},i,*p=&aa[0]);structworklist[0];){charname[20];for(i=0;i<2;i++)A.ABCDcharsex;{if(i==0)B.Astructdateaa[i][i+l]=*p+l;BCDbirthday;else++p;B}person;若对变量printf("/d",*p)CDperson的出生年份C进行赋值, 是)D正确的赋值语句。printf("\n");DA.year=1976;)C.DB.birthday.year=A.23B.26C.33D.36D.ABCD1976;30.根据以下定义,CC.person,birthda能输出字母‘M’的ABCy.year=1976;语句是 〇BD.person.year=19structpersonAB76;{charname[9];intA29.以下程序的输出age;);A结果是 〇structperson28.对于如下的结构main()class[4]={"John
”,17,“Paid”,19j+=4)m++;{charc;int,“Mary”,18,“Adprintf(“%d\n”,mv0=0,vl=0,v2=0;am”,16};);while((c=getchar(A.2.f(intb口,intn)))!=’\n')printf(w%c\n",c{inti,r=l;{switch(c)lass[3].name);B.for(i=0;i〈=n;i++){case'a':printf(u%c\n",cr=r*b[i];case'e':lass[3].name[1]);returnr;case'i':C.)case’〇':printf(“%c\n”,cmain()case'u':vl++;lass[2].name[l]);{intdefault:v0++;D.x,a[]={2,3,4,5,6v2++;printf(w%c\n",c,7,8,9);}lass[2].name[0]);x-f(a,3);}二、读下面程序,写printf(“%d\n”,xprintf("v0=%d,vl出执行结果(5个小);=%d,v2-%d\n",v0,题,每题4分,共20}vl,v2);分):3.若输入}1.inti,j,m=0;uadequacy",写4.main()for(i=l;iく=15;出程序的执行结果。{chari+=4)#include<stdio.h>a[]="ABCDEDGH"for(j=3;jく=19;main(),b[]="abCDefGh”,*pl=a,*p2=b;intk;for(k=0;kく=7;k++)if(*(pl+k)==*(p2+k))printf(w%c",*(p1+k));printf("\n");)5.若输入"Iamaboy!",写出程序的执行结果。charconnect(char*stringl,char*string2,char*string){inti,j;for(i=0;stringl[i]!=‘、〇';i++)string[i]=stringl[i];for(j=0;string2[j]!=‘、〇';j++)string[i+j]=string2[j];string[i+j]=’、〇)main(){charsl[100],s2[100],s[100];printf("输入stringl:\n");scanf(u%s",si);printf("输入string2:\n");scanf("如",s2);connect(si,s2,s);printf("%s\n",s);三、编写程序题(3个小题,共20分):1.利用scanf函数输入三个整数,按从小到大的顺序输出。(5分).求n!,即计算]*2*3*3*n的值。(5分).输入10个学生的成绩,求平均成绩,并将低于平均成绩的分数输出。(10分)要求:(1)使用数组存放成绩,数组名为score〇(2)编写三个函数,函数input:输入学生成绩,函数average:求平均成绩,函数result:将低于平均成绩的分数输ー、选择题(15*2=30分)1、下列对C语言的特点说法不正确的是。A.c语言是结构化设计语言B.c语言是机器语言C.c语言生成目标代码质量高,程序执行效率高D.c语言简洁、紧凑、使用方便、灵活2、ー个C语言程序的执行是从〇A,第一个函数开始,直到最后ー个函数结束B.main函数开始,直到main函出。第六套试题数结束C.第一个函数开始,直到最后ー个语句结束D.main函数开始,直到最后一个函数结束3、下列标识符错误的是〇A.HotdogB.catlC.2dogD.Sexp4、以下叙述正确的是〇dowhile语句构成的循环不能用其它语句构成的循环来代替dowhile语句构成的循环只能用break语句退出C.用dowhile语句构成循环时,当while后的表达式成立时结束循环D.用dowhile语句构成循环时,当while后的表达式不成立时结束循环5、以下程序的输出结果是〇main(){intx=10,y=3;printf("%d\n”,y=x/y);}A.OB.1C.3D.不确定的值6、以下程序段的输出结果是〇intk,j,s;for(k=2;k<6;k++,D.(x>=y)&(y>=z)体定义:structk++)9、设有语句chardate{intyear;{s=l;a='\72';则变量intmonth;intfor(j=k;j<6;j++) 〇day;};s+=j;A,包含1个字符structworklist)B.包含2个字符{charname[20」;printf("/d\n",sC,包含3个字符charsex;);D.说明不合法structdateA.9B.1C.11D.610、以下对二维数组birthday;7、如果有下列说明a进行不正确初始化}person;intp,a=3;执行了的是 〇若对变量person的p=&a;则与&*p表达A.int出生年份进行赋值,的意思一致的是a[][3]={3,2,1,1, 是正确的赋值2,3};B.int语句。A.&aB.aC.&pD.*pa[][3]={{3,2,1},A.year=1976;8、为表示关系{1,2,3}};B.birthday.year=x》y》z,应使用的CC.int1976;语言表达式是a[2][3]={{3,2,1},C.person,birthda{1,2,3}};D.inty.year-1976;A.(x>=y)&&(y>=z)a[][]={{3,2,1},D.person.year=19B.(x>=y)AND(y〉=z)(1,2,3));76;C.(x>=y〉=z)11、对于如下的结构12、如果int
*p,a[3]={l,293};个出口其他文件中的函数执行P=a;那么运行14、如果int所共用printf("%d",*p+a[]={l,2,3,4,5};i二、程序填空+);输出结果是ntp=a+3;那么(5*5=25分)printf("%d",*p+1、将下列空白行程A.IB.2c.3D.不3);输出结果是序填写完整确定1)下列程序完成打13、下面是有关对算A.4B.1C.5D.7印出以下图案的功法的说法,其中不正15、下列对全局变量能,请将程序中的ー确的是 〇和局部变量说法不处补充完整。A.算法是程序的灵正确的是 〇MainO魂B,算法是解决A.全局变量可以为*“做什么”和“怎其他文件中的函数***么做”的问题所共用xlzslzst*C.N-S流程图表示算B,全局变量的有效xlzxlzsi**1* *1* *1* %1*法比传统流程图紧范围为从定义变量{inti,j,k;凑易画,尤其是它废的位置开始到本源for(i=0;iく=3;i++)除了流程线。文件结束D.传统的流程图表C.局部变量只有在for()示算法如:顺序、选本函数内才能使用printf("");择、循环三种结构,它们for(k=O;kく=2*i;k+一般有多个入口,多D.局部变量不能为+)
printf("*");while(*p!=‘、〇’);程序运行结果是:printf("\n");{n++;2))main()2)下列程序完成求)ー个字符串长度的return(n);intn=0;功能,请将程序中的)charc;两处补充完整。2、写出下列程序的while((c=getchar(Main()运行结果))!='2')1)n++,printf("0%cintlen;main()",c);char*str[20];{inta=l;b=2;c=3;printf("%d",n);printf(uInputswitch((a=b)==c))string:v;{case假如输入1992,那么scanf("版",);0:printf("false输出结果是:len=length(str);つ;3)printf("Thecase1:#include<math.h>lengthofstringprintf("true");main()is%d.",len);case2:{intm,i,k;)casescanf("%d",&m);length(char*p)3:printf("2,3");k=sqrt(m);{)for(i=2;i〈=k;i++);intn=0;}if(m%i==0)break;
if(i>k)4){2){inta,b;printf("YES");5)floats=0,t=l;3)int*pl,*p2;else6)intn;4)printf("NO");7)scanf("%d,%d”,&a,)for(n=l;nく=5;n++)&b);假如输入19,那么输8)t=t*n;5)pl=&a;p2=&b;出结果是:9)s=s+t;6)if(a<b)三、程序改错10)7)swap(pl,p2);(3*5=15分)printf("1!+2!+3!+8)说明:如果第4行有4!+5!=%f\n',s);printf("\n%d,%d\n错,就写:第4行应11))”,a,b);改成*****;如果需此程序运行后,没有9))要在第3行和第4行任何语法错误提示,10)swap(int插入代码就写:在第输出结果:*pa,int*pb)3、4中间插入・***・。120.000000,显然错11){intp;1、求误。请对以上程序改12)1!+2!+3!+4!+5!动2行后能使程序正p=pa;pa=pb;pb=p;1)ttinclude常运行并输出正确13))<math.h>结果:153.000000。此程序运行后,没有2)ttinclude①②任何语法错误提示,<stdio.h>2、交换两个数如果输入3,4输出3)main()1)main()结果:3,4,显然错误。请对以上程序改动1行后能使程序正常运行并输出正确结果:4,3〇①四、程序设计(2*15=30分)1、下列这个程序是用函数的方式完成编写ー个Fibonacci数列,请补充完成函数numberfibonacci()的代码。这个数列有如下特点:第1,2两个数为!,1〇从第3个数开始,该数是其前面两个数之和。即:Fl=l(n=l)F2=l(n=2)Fn=FnT+Fn-2(n>=3)运行结果为:11235813213455891442333776109871597258441816765程序如下main(){intn;scanf&n);number_fibonacci(n);printf('\n");voidnumberfibonacci(intn)2、利用所学知识,设计下列程序打印出所有的“水仙花数”,所谓“水仙花数”是指ー个3位数,其各位数字立方和等于该数本身。例如,153是一水仙花数,因为153=1*1*1+5*5*5+3*3*3第一套试题答案ー、单项选择题(15个小题,每题2分,共30分):1-5:AABCD6-10:ACBBC11-15:BCADB二、填空题(5个小题,每题2分,共10分):1.2 2.4string,h7.000000a=3,b=4三、程序分析题,写出程序的运行结果(5个小题,每题4分,共20分):1.a=2,b=l2.Turbo5+4+1=1010,205.a+b=910+4+2=16四、程序填空题,将下面程序补充完整(10个填空,每空2分,共20分):.①jく=i②printf("\n").①floataverage(floata[10])或floataverage(floata[])②return(sum/10).①m=length(str)②*p!='、〇'或*p.①i%3==0②avg+=a[i]或avg=avg+a[i].①*cp=*cp+32或*cp=*cp+'a'-'A'②cp++五、程序设计题(3个小题,共20分):#include<stdio.h>voidmain(){inta,b,c,t;printfCinputa,bandc:");scanf(*%d%d%d,,,&a,&b,&c); 1 分if(a>b){t=a;a=b;b=t;} 3 分if(a>c){t=a;a=c;c=t;}if(b>c){t=b;b=c;c=t;}printf("%d%d%d”,a,b,c) 1 分ttinclude<stdio.h>voidmain(){floatscore;printf("Inputascore:");scanf( ,&score);while(score>100score<0) 2分{printf(uError!Pleaseinputagain:\n,?);scanf("/f”,&score);)if(score>=90)printf("A\n"); 3分elseif(score>=80)printf("B\n");elseif(score>=70)printf("C\n");elseif(score>=60)printf("D\n");elseprintf("E\n");)#include<stdio.h>#defineN10voidsort(inta[]);……1分voidmain()(inta[N],i,j;printf(/zinput%dnumbers:\n',N);for(i=0;i<N;i++) 2分scanf("%d”,&a[i]);sort(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 内科护理重点培训
- 汉阳区期中数学试卷
- 学前教育思想发展
- 哈密八中高一数学试卷
- 河南卷数学试卷
- 压疮术中护理
- 护理外科阑尾炎
- 湖北省六年级数学试卷
- 植物与人类健康
- 杭州西湖区2模数学试卷
- 高压安全知识培训
- 护士长岗位胜任力培训心得
- 陕西省西安市经开区2024-2025学年八年级下学期期末学生学业水平质量监测英语试卷(含答案)
- 警察警械使用培训课件
- 燃气管道施工重点难点及安全措施
- 2025年重庆市南开中学八年级英语第二学期期末综合测试试题含答案
- 初一新生入学教育
- 空间低温润滑技术-洞察及研究
- 意式极简全案设计
- 2025年城市危旧房改造项目社会稳定风险评估与公众参与分析
- DB32-T 5090.1-2025 医院医患沟通规范 第1部分:住院
评论
0/150
提交评论