c语言期末考试题及其答案.docx
《c语言期末考试题及其答案.docx》由会员分享,可在线阅读,更多相关《c语言期末考试题及其答案.docx(16页珍藏版)》请在冰豆网上搜索。
c语言期末考试题及其答案
C语言期末考试卷及其答案
一选择题(7分,每小题0.5分)
1.C语言源程序的基本单位是(B)。
A过程B函数C子程序D标识符
2.下列程序的输出结果是(C)。
main()
{inta=7,b=5。
printf("%d\n",b=b/a)。
}
A5B1C0D不确定值
3.假设变量a,b均为整型,表达式(a=5,b=2,a>b?
a++:
b++,a+b)的值是(B)。
A7B8C9D2
4.设a为int型变量,执行下列赋值语句后,a的取值分别是()。
a=125.534。
a=(int)125.521%4。
a=5<<2。
A125,31,1B125,1,20C125,31,20D125.534,2,20
5.设有如下程序段,下面描述中正确的是(C)。
intk=10。
while(k=0)k=k-1。
A循环执行一次B循环是无限循环C循环体语句一次也不执行D循环体语句执行一次
6.以下程序的输出结果为(D)。
inti。
voidprt()
{for(i=5。
i<8。
i++)printf("%c",'*')。
printf("\t")。
i<=8。
i++)prt()。
A***B************C******D***
7.在C语言程序中,以下说法正确的是(A )。
A函数的定义可以嵌套,但函数的调用不可以嵌套
B函数的定义不可以嵌套,但函数的调用可以嵌套
C函数的定义和函数的调用都不可以嵌套
D函数的定义和函数的调用都可以嵌套
8.以下函数调用语句中含有(A)个实参。
func((e1,e2),(e3,e4,e5))。
A2B3C5D语法错误
9.以下程序的输出结果为()。
#defineADD(x)x*x
{inta=4,b=6,c=7,d=ADD(a+b)*c。
printf("d=%d",d)。
Ad=70Bd=80Cd=140Dd=700
10.已知职工记录描述如下,在TurboC中,系统为变量w分配()字节的空间。
structworker
{intno。
charname[20]。
charsex。
union
{intday。
intmonth。
intyear。
}birth。
}w。
A29B20C25D6
11.设有以下定义,值为5的枚举常量是()。
enumweek{sun,mon=4,tue,wed,thu,fri,sat}w;
AtueBsatCfriDthu
12.下面选项中正确的赋值语句是(设chara[5],*p=a。
)()。
Ap="abcd"。
Ba="abcd"。
C*p="abcd"。
D*a="abcd"。
13.设有以下程序段,则值为6的表达式是()。
structst{intn。
structst*next。
}。
staticstructsta[3]={5,&a[1],7,&a[2],9,0},*p。
p=&a[0]。
Ap++->nB++p->nCp->n++D(*p).n++
14.C语言中的文件类型只有()。
A索引文件和文本文件两种B文本文件一种
C二进制文件一种DASCII码文件和二进制文件两种
二判断对错,对的划“√”,错的划“×”(5分,每小题0.5分)
1.在TurboC中,整型数据在内存中占2个字节。
()
2.inti=20。
switch(i/10){case2:
printf("A")。
case1:
printf("B")。
}的输出结果为A。
3.break语句用在循环体中,可结束本层循环,continue语句用在循环体中,可结束本次循环。
4.函数的递归调用不过是一个函数直接或间接地调用它自身。
5.函数strlen("ASDFG\n")的值是7。
6.通过return语句,函数可以带回一个或一个以上的返回值。
7.结构体类型只有一种。
8.char*p="girl";的含义是定义字符型指针变量p,p的值是字符串"girl"。
9.若有定义:
char*p(chara[10])。
则p是函数名。
10.用fopen("file","r+")。
打开的文件"file"可以进行修改。
三写出下列程序的运行结果(10分,每小题2分)
1.floataverage(floatarray[10])
{inti。
floataver,sum=array[0]。
for(i=1。
i<10。
i++)
sum=sum+array[i]。
aver=sum/10。
return(aver)。
{floatscore[10]={89,67.5,78,91,56,82.5,65,70,79,88},aver。
aver=average(score)。
printf(“averagescoreis%5.2f\n”,aver)。
2.main()
{chara[5]={‘A’,‘B’,‘C’,‘D’,‘E’},*p=a,**pa。
for(p=0。
pp++)printf(“%2c”,*p)。printf(“\n”)。printf(“%2c\n”,**(pa=&p))。}3.main(){inta,b,s=0。for(a=1,b=1。a<=100。a++){if(b>=20)break。if(b%3==1) { b+=3。continue。}b-=5。}printf(“a=%d\tb=%d\n”,a,b)。}4.main(){printf(“main():%d\n”,fact(5))。fact(-5)。}fact(intvalue){intf。if(value<0){printf(“Argerror\n")。return(-1)。}elseif(value==1||value==0)f=1。elsef=value*fact(value-1)+1。printf(“Thiscalledvalue=%d\n”,f)。returnf。}5.main(){inta=012,b=0x12,k=12。charc=‘\102’,d=‘\r’。printf(“a=%d\tb=%d\tk=%d\n”,a,b,k)。printf(“c=%c,d=%c%o\n”,c,d,a)。a=‘A’。c=49。printf(“a=%d\tc=%c\n”,a,c)。}四阅读下列程序,在处填入适当内容,使程序完整(8分,每个空1分)1.有一个3*4矩阵,求其中的最大元素。max_value((1)){inti,j,max。max=array[0][0]。for(i=0。i<3。i++)for(j=0。j<4。j++)if(array[i][j]>max)max=array[i][j]。(2)。}main(){inta[3][4],i,j。for(i=0。i<3。i++)for(j=0。j<4。j++)(3)。printf(“maxvalueis%d\n”,max_value(a))。}2.输入x、y两个整数,按先大后小的顺序输出x、y。#include“stdio.h”main(){intx,y,*px,*py,(4)。scanf(“%d%d”,&x,&y)。(5)。(6)。if(x{p=px。px=py。py=p。}printf(“x=%d,y=%d\n”,x,y)。printf(“MAX=%d,MIN=%d\n”,*px,*py)。}3.用选择排序法对任意10个整数按照由小到大排序。main(){inta[11],i,j,k,t。printf("Pleaseinput10numbers:\n")。for(i=1。i<11。i++)scanf("%d",&a[i])。printf("\n")。for(i=1。i<=9。i++){(7)。for(j=i+1。(8)。j++)if(a[j]>a[k])k=j。if(k!=i){t=a[k]。a[k]=a[i]。a[i]=t。}}printf("Thesortednumbers:\n")。for(i=1。i<11。i++)printf("%d",a[i])。}答案一选择题(7分,每小题0.5分)1.B2.C3.B4.B5.C6.A7.B8.A9.A10.C11.A12.A13.B14.D二判断对错,对的划“√”,错的划“×”(5分,每小题0.5分)1.×2.×3.√4.√5.×6.×7.×8.×9.√10.√三写出下列程序的运行结果(10分,每小题2分)1.2.3. 4.5. 四阅读下列程序,在处填入适当内容,使程序完整(8分,每个空1分)1.(1)intarray[3][4](intarray[][4])(2)return(max)(3)scanf(“%d”,&a[i][j])2.(4)*p(5)px=&x(py=&y)(6)py=&y(px=&x)3.(7)(8) 2003C语言试卷3一选择题(24分,每小题2分)1.已知函数fread的调用形式为fread(buffer,size,count,fp),其中buffer代表的是()。A存放读入数据项的存储区B存放读入数据的地址或指向此地址的指针C一个指向所读文件的文件指针D一个整形变量,代表要读入的数据项总数2.以下程序的输出结果为()。main(){inti=010,j=10。printf("%d,%d\n",i++,j--)。}A11,9B9,10C8,10D9,93.设a为int型变量,执行下列赋值语句后,a的取值分别是()。a=125.534。a=20.0/3。a=(int)125.521%4。a=5<<2。A125,6,31,1B125,6,1,20C125,6.666666,31,20D125.534,6.666666,2,204.设i和k都是int类型,则for循环语句()。for(i=0,k=-1。k=1。i++,k++)printf("****\n")。A循环结束的条件不合法B循环体一次也不执行C循环体只执行一次D是无限循环5.以下程序的输出结果为()。main(){charc。inti。for(i=65。i<68。i++){c=i+32。switch(c){case'a':case'b':case'c':printf("%c,",c)。break。default:printf("end")。}}}Aa,b,c,endBa,a,a,endCa,a,a,Da,b,c,6.函数调用语句:fseek(fp,-10L,2);的含义是()。A将文件位置指针从文件末尾处向文件头的方向移动10个字节B将文件位置指针从当前位置向文件头的方向移动10个字节C将文件位置指针从当前位置向文件末尾方向移动10个字节D将文件位置指针移到距离文件头10个字节处7.以下程序的输出结果为()。main(){chars1[40]="country",s2[20]="side"。inti=0,j=0。while(s1[i]!='\0')i++。while(s2[j]!='\0')s1[i++]=s2[j++]。s1[i]=0。printf("%s\n",s1)。}AsideBcountryCsidetryDcountryside8.下列说法不正确的是()。A主函数main中定义的变量在整个文件或程序中有效B不同函数中,可以使用相同名字的变量C形式参数是局部变量D在一个函数内部,可以在复合语句中定义变量,这些变量只在本复合语句中有效9.在下列程序段中,枚举变量c1的值是()。enumcolor{red,yellow,blue=4,green,white}c1。c1=yellow。c1=white。A1B3C5D610.设有说明int(*ptr)()。其中标识符ptr是()。A是一个指向整形变量的指针B是一个指针,它指向一个函数值是int的函数C是一个函数名D定义不合法11.定义由n个指向整形数据的指针组成的数组p,其正确的方式为()。Aintp。Bint(*p)[n]。Cint*p[n]。Dint(*p)()。12.具有相同类型的指针类型变量p与数组a,不能进行的操作是()。Ap=a。B*p=a[0]。Cp=&a[0]。Dp=&a。二判断对错,对的划“√”,错的划“×”(20分,每小题2分)1.参加位运算的数据可以是任何类型的数据。()2.若有定义和语句:inta;charc。floatf。scanf("%d,%c,%f",&a,&c,&f)。若通过键盘输入:10,A,12.5,则a=10,c=‘A’,f=12.5。()3.C语言把文件看作是一个字符(字节)的序列。()4.若有宏定义:#defineS(a,b)t=a。a=b。b=t由于变量t没定义,所以此宏定义是错误的。()5.在TurboC中,下面的定义和语句是合法的:file*fp。fp=fopen("a.txt","r")。()6.若有定义:chars[]="china";则TurboC系统为数组s开辟6个字节的内存单元。()7.若有定义和语句:inta[3][3]={{3,5},{8,9},{12,35}},i,sum=0;for(i=0。i<3。i++)sum+=a[i][2-i]。则sum=21。()8.若有定义和语句:structstudent{intnum。charname[10]。floatscore。}s[5]={{1,"lili",98.5},{9,"xiaohua",66}},*p=s。printf("%d",*p++)。输出结果是1。()9.在程序中定义了一个结构体类型后,可以多次用它来定义具有该类型的变量。()10.在TurboC中,此定义和语句是合法的:enumaa{a=5,b,c}bb。bb=(enumaa)5。()三写出下列程序的运行结果(36分,每小题6分)1.main(){inti=29,j=6,k=2,s。s=i+i/j%k-9。printf(“s=%d\n”,s)。}2.main(){intx=31,y=2,s=0。do{s-=x*y。x+=2。y-=3。}while(x%3==0)。printf(“x=%d\ty=%d\ts=%d\n”,x,y,s)。}3.main(){inta[6]={10,20,30,40,50,60},i。invert(a,0,5)。for(i=0。i<6。i++)printf(“%d,”,a[i])。printf(“\n”)。}invert(ints[],inti,intj){intt。if(i{invert(s,i+1j-1)。t=s[i]。s[i]=s[j]。s[j]=t。}}4.#includemain(){charstr[]=“TheCprogram”,c。inti。for(i=2。(c=str[i])!=‘\0’。i++){switch(c){case‘g’:++i。break。case‘o’:continue。default:printf(“%c”,c)。continue。}printf(“*”)。}printf(“\n”)。}5.structw{charlow;charhigh;};unionu{structwbyte;shortword;}uw;main(){intresult;uw.word=0x1234。printf(“wordvalue:%04x\n”,uw.word)。printf(“highbyte:%02x\n”,uw.byte.high)。printf(“lowbyte:%02x\n”,uw.byte.low)。uw.byte.low=0x74。printf(“wordvalue:%04x\n”,uw.word)。result=uw.word+0x2a34。printf(“theresult:%04x\n”,result)。}6.main(){char*s2=“IloveChina!”,**s1=&s2;char*s3,c,*s4=“w”。s3=&c。*s3=‘H’。s2=s2+2。printf(“%s\t%c\t%s\t%c\n”,s2,*s3,s4,**s1)。}四阅读下列程序,在处填入适当内容,使程序完整(20分,每个空2分)1.百马百担问题:有100匹马,驮100担货,大马驮3担,中马驮2担,两匹小马驮1担,问大、中、小马各多少匹?main(){inthb,hm,hl,n=0。for(hb=0。hb<=100。hb+=(1))for(hm=0。hm<=100-hb。hm+=(2)){hl=100-hb-(3)。if(hb/3+hm/2+2*(3)==100){n++。printf("hb=%d,hm=%d,hl=%d\n",hb/3,hm/2,2*hl)。}}printf("n=%d\n",n)。}2.用“起泡法”对输入的10个字符排序后按从小到大的次序输出。#defineN10charstr[N]。main(){inti,flag。for(flag=1。flag==1。){scanf("%s",str)。flag=0。printf("\n")。}sort(___(4)___)。for(i=0。ii++)printf("%c",str[i])。printf("\n")。}sort(charstr[N]){inti,j。chart。for(j=1。jj++)for(i=0。(i='\0')。i++)if(str[i]>str[i+1]){t=str[i]。____(5)____。____(6)____。}}3.以下程序是一个函数,功能是求二阶矩阵(m行n列矩阵)的所有靠外侧的各元素值之和。(本程序中二阶矩阵用一维数组来表示。)例如,矩阵为:300325731042则所有靠外侧的各元素值之和为3+0+0+3+2+3+1+0+4+2=18。add(intm,intn,intarr[]){inti,j,sum=0。for(i=0。ii=i+m-1)for(j=0。jj++)sum=sum+(7)。for(j=0。jj=j+n-1)for(i=1。(8)。i++)sum=sum+arr[i*n+j]。return(sum)。}4.用指针作函数参数,编程序求一维数组中的最大和最小的元素值。#defineN10main(){voidmaxmin(intarr[],int*pt1,int*pt2,intn)。intarray[N]={10,7,19,29,4,0,7,35,-16,21},*p1,*p2,a,b。p1=&a。p2=&b。maxmin(array,p1,p2,N)。printf("max=%d,min=%d",a,b)。}voidmaxmin(intarr[],int*pt1,int*pt2,intn){inti。*pt1=*pt2=arr[0]。for(i=1。ii++){if(arr[i]>*pt1)(9)。if(arr[i]<*pt2)(10)。}} 答案一选择题(24分,每小题2分)1.(B)2.(C)3.(B)4.(D)5.(D)6.(A)7.(D)8.(A)9.(D)10.(B)11.(C)12.(D)二判断对错,对的划“√”,错的划“×”(20分,每小题2分)1.(×)2.(√)3.(√)4.(×)5.(×)6.(√)7.(√)8.(×)9.(√)10.(√)三写出下列程序的运行结果(36分,每小题6分)1.s=202.x=35y=-4s=-293.60,50,40,30,20,10,4.eCpr*am5.wordvalue:12346.loveChina!Hwlhighbyte:12lowbyte:34wordvalue:1274theresult:3ca8四阅读下列程序,在处填入适当内容,使程序完整(20分,每个空2分)1.(1)3(2)2(3)hmhl2.(4)str(5)str[i]=str[i+1](6)str[i+1]=t3.(7
p++)
printf(“%2c”,*p)。
printf(“\n”)。
printf(“%2c\n”,**(pa=&p))。
3.main()
{inta,b,s=0。
for(a=1,b=1。
a<=100。
a++)
{if(b>=20)break。
if(b%3==1)
{ b+=3。
continue。
b-=5。
printf(“a=%d\tb=%d\n”,a,b)。
4.main()
{printf(“main():
%d\n”,fact(5))。
fact(-5)。
fact(intvalue)
{intf。
if(value<0)
{printf(“Argerror\n")。
return(-1)。
elseif(value==1||value==0)f=1。
elsef=value*fact(value-1)+1。
printf(“Thiscalledvalue=%d\n”,f)。
returnf。
5.main()
{inta=012,b=0x12,k=12。
charc=‘\102’,d=‘\r’。
printf(“a=%d\tb=%d\tk=%d\n”,a,b,k)。
printf(“c=%c,d=%c%o\n”,c,d,a)。
a=‘A’。
c=49。
printf(“a=%d\tc=%c\n”,a,c)。
四阅读下列程序,在处填入适当内容,使程序完整(8分,每个空1分)
1.有一个3*4矩阵,求其中的最大元素。
max_value(
(1))
{inti,j,max。
max=array[0][0]。
for(i=0。
i<3。
for(j=0。
j<4。
j++)
if(array[i][j]>max)
max=array[i][j]。
(2)。
{inta[3][4],i,j。
(3)。
printf(“maxvalueis%d\n”,max_value(a))。
2.输入x、y两个整数,按先大后小的顺序输出x、y。
#include“stdio.h”
{intx,y,*px,*py,(4)。
scanf(“%d%d”,&x,&y)。
(5)。
(6)。
if(x{p=px。px=py。py=p。}printf(“x=%d,y=%d\n”,x,y)。printf(“MAX=%d,MIN=%d\n”,*px,*py)。}3.用选择排序法对任意10个整数按照由小到大排序。main(){inta[11],i,j,k,t。printf("Pleaseinput10numbers:\n")。for(i=1。i<11。i++)scanf("%d",&a[i])。printf("\n")。for(i=1。i<=9。i++){(7)。for(j=i+1。(8)。j++)if(a[j]>a[k])k=j。if(k!=i){t=a[k]。a[k]=a[i]。a[i]=t。}}printf("Thesortednumbers:\n")。for(i=1。i<11。i++)printf("%d",a[i])。}答案一选择题(7分,每小题0.5分)1.B2.C3.B4.B5.C6.A7.B8.A9.A10.C11.A12.A13.B14.D二判断对错,对的划“√”,错的划“×”(5分,每小题0.5分)1.×2.×3.√4.√5.×6.×7.×8.×9.√10.√三写出下列程序的运行结果(10分,每小题2分)1.2.3. 4.5. 四阅读下列程序,在处填入适当内容,使程序完整(8分,每个空1分)1.(1)intarray[3][4](intarray[][4])(2)return(max)(3)scanf(“%d”,&a[i][j])2.(4)*p(5)px=&x(py=&y)(6)py=&y(px=&x)3.(7)(8) 2003C语言试卷3一选择题(24分,每小题2分)1.已知函数fread的调用形式为fread(buffer,size,count,fp),其中buffer代表的是()。A存放读入数据项的存储区B存放读入数据的地址或指向此地址的指针C一个指向所读文件的文件指针D一个整形变量,代表要读入的数据项总数2.以下程序的输出结果为()。main(){inti=010,j=10。printf("%d,%d\n",i++,j--)。}A11,9B9,10C8,10D9,93.设a为int型变量,执行下列赋值语句后,a的取值分别是()。a=125.534。a=20.0/3。a=(int)125.521%4。a=5<<2。A125,6,31,1B125,6,1,20C125,6.666666,31,20D125.534,6.666666,2,204.设i和k都是int类型,则for循环语句()。for(i=0,k=-1。k=1。i++,k++)printf("****\n")。A循环结束的条件不合法B循环体一次也不执行C循环体只执行一次D是无限循环5.以下程序的输出结果为()。main(){charc。inti。for(i=65。i<68。i++){c=i+32。switch(c){case'a':case'b':case'c':printf("%c,",c)。break。default:printf("end")。}}}Aa,b,c,endBa,a,a,endCa,a,a,Da,b,c,6.函数调用语句:fseek(fp,-10L,2);的含义是()。A将文件位置指针从文件末尾处向文件头的方向移动10个字节B将文件位置指针从当前位置向文件头的方向移动10个字节C将文件位置指针从当前位置向文件末尾方向移动10个字节D将文件位置指针移到距离文件头10个字节处7.以下程序的输出结果为()。main(){chars1[40]="country",s2[20]="side"。inti=0,j=0。while(s1[i]!='\0')i++。while(s2[j]!='\0')s1[i++]=s2[j++]。s1[i]=0。printf("%s\n",s1)。}AsideBcountryCsidetryDcountryside8.下列说法不正确的是()。A主函数main中定义的变量在整个文件或程序中有效B不同函数中,可以使用相同名字的变量C形式参数是局部变量D在一个函数内部,可以在复合语句中定义变量,这些变量只在本复合语句中有效9.在下列程序段中,枚举变量c1的值是()。enumcolor{red,yellow,blue=4,green,white}c1。c1=yellow。c1=white。A1B3C5D610.设有说明int(*ptr)()。其中标识符ptr是()。A是一个指向整形变量的指针B是一个指针,它指向一个函数值是int的函数C是一个函数名D定义不合法11.定义由n个指向整形数据的指针组成的数组p,其正确的方式为()。Aintp。Bint(*p)[n]。Cint*p[n]。Dint(*p)()。12.具有相同类型的指针类型变量p与数组a,不能进行的操作是()。Ap=a。B*p=a[0]。Cp=&a[0]。Dp=&a。二判断对错,对的划“√”,错的划“×”(20分,每小题2分)1.参加位运算的数据可以是任何类型的数据。()2.若有定义和语句:inta;charc。floatf。scanf("%d,%c,%f",&a,&c,&f)。若通过键盘输入:10,A,12.5,则a=10,c=‘A’,f=12.5。()3.C语言把文件看作是一个字符(字节)的序列。()4.若有宏定义:#defineS(a,b)t=a。a=b。b=t由于变量t没定义,所以此宏定义是错误的。()5.在TurboC中,下面的定义和语句是合法的:file*fp。fp=fopen("a.txt","r")。()6.若有定义:chars[]="china";则TurboC系统为数组s开辟6个字节的内存单元。()7.若有定义和语句:inta[3][3]={{3,5},{8,9},{12,35}},i,sum=0;for(i=0。i<3。i++)sum+=a[i][2-i]。则sum=21。()8.若有定义和语句:structstudent{intnum。charname[10]。floatscore。}s[5]={{1,"lili",98.5},{9,"xiaohua",66}},*p=s。printf("%d",*p++)。输出结果是1。()9.在程序中定义了一个结构体类型后,可以多次用它来定义具有该类型的变量。()10.在TurboC中,此定义和语句是合法的:enumaa{a=5,b,c}bb。bb=(enumaa)5。()三写出下列程序的运行结果(36分,每小题6分)1.main(){inti=29,j=6,k=2,s。s=i+i/j%k-9。printf(“s=%d\n”,s)。}2.main(){intx=31,y=2,s=0。do{s-=x*y。x+=2。y-=3。}while(x%3==0)。printf(“x=%d\ty=%d\ts=%d\n”,x,y,s)。}3.main(){inta[6]={10,20,30,40,50,60},i。invert(a,0,5)。for(i=0。i<6。i++)printf(“%d,”,a[i])。printf(“\n”)。}invert(ints[],inti,intj){intt。if(i{invert(s,i+1j-1)。t=s[i]。s[i]=s[j]。s[j]=t。}}4.#includemain(){charstr[]=“TheCprogram”,c。inti。for(i=2。(c=str[i])!=‘\0’。i++){switch(c){case‘g’:++i。break。case‘o’:continue。default:printf(“%c”,c)。continue。}printf(“*”)。}printf(“\n”)。}5.structw{charlow;charhigh;};unionu{structwbyte;shortword;}uw;main(){intresult;uw.word=0x1234。printf(“wordvalue:%04x\n”,uw.word)。printf(“highbyte:%02x\n”,uw.byte.high)。printf(“lowbyte:%02x\n”,uw.byte.low)。uw.byte.low=0x74。printf(“wordvalue:%04x\n”,uw.word)。result=uw.word+0x2a34。printf(“theresult:%04x\n”,result)。}6.main(){char*s2=“IloveChina!”,**s1=&s2;char*s3,c,*s4=“w”。s3=&c。*s3=‘H’。s2=s2+2。printf(“%s\t%c\t%s\t%c\n”,s2,*s3,s4,**s1)。}四阅读下列程序,在处填入适当内容,使程序完整(20分,每个空2分)1.百马百担问题:有100匹马,驮100担货,大马驮3担,中马驮2担,两匹小马驮1担,问大、中、小马各多少匹?main(){inthb,hm,hl,n=0。for(hb=0。hb<=100。hb+=(1))for(hm=0。hm<=100-hb。hm+=(2)){hl=100-hb-(3)。if(hb/3+hm/2+2*(3)==100){n++。printf("hb=%d,hm=%d,hl=%d\n",hb/3,hm/2,2*hl)。}}printf("n=%d\n",n)。}2.用“起泡法”对输入的10个字符排序后按从小到大的次序输出。#defineN10charstr[N]。main(){inti,flag。for(flag=1。flag==1。){scanf("%s",str)。flag=0。printf("\n")。}sort(___(4)___)。for(i=0。ii++)printf("%c",str[i])。printf("\n")。}sort(charstr[N]){inti,j。chart。for(j=1。jj++)for(i=0。(i='\0')。i++)if(str[i]>str[i+1]){t=str[i]。____(5)____。____(6)____。}}3.以下程序是一个函数,功能是求二阶矩阵(m行n列矩阵)的所有靠外侧的各元素值之和。(本程序中二阶矩阵用一维数组来表示。)例如,矩阵为:300325731042则所有靠外侧的各元素值之和为3+0+0+3+2+3+1+0+4+2=18。add(intm,intn,intarr[]){inti,j,sum=0。for(i=0。ii=i+m-1)for(j=0。jj++)sum=sum+(7)。for(j=0。jj=j+n-1)for(i=1。(8)。i++)sum=sum+arr[i*n+j]。return(sum)。}4.用指针作函数参数,编程序求一维数组中的最大和最小的元素值。#defineN10main(){voidmaxmin(intarr[],int*pt1,int*pt2,intn)。intarray[N]={10,7,19,29,4,0,7,35,-16,21},*p1,*p2,a,b。p1=&a。p2=&b。maxmin(array,p1,p2,N)。printf("max=%d,min=%d",a,b)。}voidmaxmin(intarr[],int*pt1,int*pt2,intn){inti。*pt1=*pt2=arr[0]。for(i=1。ii++){if(arr[i]>*pt1)(9)。if(arr[i]<*pt2)(10)。}} 答案一选择题(24分,每小题2分)1.(B)2.(C)3.(B)4.(D)5.(D)6.(A)7.(D)8.(A)9.(D)10.(B)11.(C)12.(D)二判断对错,对的划“√”,错的划“×”(20分,每小题2分)1.(×)2.(√)3.(√)4.(×)5.(×)6.(√)7.(√)8.(×)9.(√)10.(√)三写出下列程序的运行结果(36分,每小题6分)1.s=202.x=35y=-4s=-293.60,50,40,30,20,10,4.eCpr*am5.wordvalue:12346.loveChina!Hwlhighbyte:12lowbyte:34wordvalue:1274theresult:3ca8四阅读下列程序,在处填入适当内容,使程序完整(20分,每个空2分)1.(1)3(2)2(3)hmhl2.(4)str(5)str[i]=str[i+1](6)str[i+1]=t3.(7
{p=px。
px=py。
py=p。
printf(“x=%d,y=%d\n”,x,y)。
printf(“MAX=%d,MIN=%d\n”,*px,*py)。
3.用选择排序法对任意10个整数按照由小到大排序。
{inta[11],i,j,k,t。
printf("Pleaseinput10numbers:
\n")。
i<11。
i++)scanf("%d",&a[i])。
printf("\n")。
i<=9。
{(7)。
for(j=i+1。
(8)。
if(a[j]>a[k])k=j。
if(k!
=i)
{t=a[k]。
a[k]=a[i]。
a[i]=t。
printf("Thesortednumbers:
i++)printf("%d",a[i])。
答案
1.B2.C3.B4.B5.C
6.A7.B8.A9.A10.C
11.A12.A13.B14.D
1.×2.×3.√4.√5.×
6.×7.×8.×9.√10.√
1.2.3.
4.5.
1.
(1)intarray[3][4](intarray[][4])
(2)return(max)(3)scanf(“%d”,&a[i][j])
2.(4)*p(5)px=&x(py=&y)(6)py=&y(px=&x)
3.(7)(8)
2003C语言试卷3
一选择题(24分,每小题2分)
1.已知函数fread的调用形式为fread(buffer,size,count,fp),其中buffer代表的是()。
A存放读入数据项的存储区B存放读入数据的地址或指向此地址的指针
C一个指向所读文件的文件指针D一个整形变量,代表要读入的数据项总数
2.以下程序的输出结果为()。
{inti=010,j=10。
printf("%d,%d\n",i++,j--)。
A11,9B9,10C8,10D9,9
3.设a为int型变量,执行下列赋值语句后,a的取值分别是()。
a=20.0/3。
A125,6,31,1B125,6,1,20C125,6.666666,31,20D125.534,6.666666,2,20
4.设i和k都是int类型,则for循环语句()。
for(i=0,k=-1。
k=1。
i++,k++)printf("****\n")。
A循环结束的条件不合法B循环体一次也不执行C循环体只执行一次D是无限循环
5.以下程序的输出结果为()。
{charc。
for(i=65。
i<68。
{c=i+32。
switch(c)
{case'a':
case'b':
case'c':
printf("%c,",c)。
break。
default:
printf("end")。
Aa,b,c,endBa,a,a,endCa,a,a,Da,b,c,
6.函数调用语句:
fseek(fp,-10L,2);的含义是()。
A将文件位置指针从文件末尾处向文件头的方向移动10个字节
B将文件位置指针从当前位置向文件头的方向移动10个字节
C将文件位置指针从当前位置向文件末尾方向移动10个字节
D将文件位置指针移到距离文件头10个字节处
7.以下程序的输出结果为()。
{chars1[40]="country",s2[20]="side"。
inti=0,j=0。
while(s1[i]!
='\0')i++。
while(s2[j]!
='\0')s1[i++]=s2[j++]。
s1[i]=0。
printf("%s\n",s1)。
AsideBcountryCsidetryDcountryside
8.下列说法不正确的是()。
A主函数main中定义的变量在整个文件或程序中有效
B不同函数中,可以使用相同名字的变量
C形式参数是局部变量
D在一个函数内部,可以在复合语句中定义变量,这些变量只在本复合语句中有效
9.在下列程序段中,枚举变量c1的值是()。
enumcolor{red,yellow,blue=4,green,white}c1。
c1=yellow。
c1=white。
A1B3C5D6
10.设有说明int(*ptr)()。
其中标识符ptr是()。
A是一个指向整形变量的指针B是一个指针,它指向一个函数值是int的函数
C是一个函数名D定义不合法
11.定义由n个指向整形数据的指针组成的数组p,其正确的方式为()。
Aintp。
Bint(*p)[n]。
Cint*p[n]。
Dint(*p)()。
12.具有相同类型的指针类型变量p与数组a,不能进行的操作是()。
Ap=a。
B*p=a[0]。
Cp=&a[0]。
Dp=&a。
二判断对错,对的划“√”,错的划“×”(20分,每小题2分)
1.参加位运算的数据可以是任何类型的数据。
2.若有定义和语句:
inta;charc。
floatf。
scanf("%d,%c,%f",&a,&c,&f)。
若通过键盘输入:
10,A,12.5,则a=10,c=‘A’,f=12.5。
3.C语言把文件看作是一个字符(字节)的序列。
4.若有宏定义:
#defineS(a,b)t=a。
a=b。
b=t由于变量t没定义,所以此宏定义是错误的。
5.在TurboC中,下面的定义和语句是合法的:
file*fp。
fp=fopen("a.txt","r")。
6.若有定义:
chars[]="china";则TurboC系统为数组s开辟6个字节的内存单元。
7.若有定义和语句:
inta[3][3]={{3,5},{8,9},{12,35}},i,sum=0;for(i=0。
i++)sum+=a[i][2-i]。
则sum=21。
8.若有定义和语句:
structstudent{intnum。
charname[10]。
floatscore。
}s[5]={{1,"lili",98.5},{9,"xiaohua",66}},*p=s。
printf("%d",*p++)。
输出结果是1。
9.在程序中定义了一个结构体类型后,可以多次用它来定义具有该类型的变量。
10.在TurboC中,此定义和语句是合法的:
enumaa{a=5,b,c}bb。
bb=(enumaa)5。
三写出下列程序的运行结果(36分,每小题6分)
1.main()
{inti=29,j=6,k=2,s。
s=i+i/j%k-9。
printf(“s=%d\n”,s)。
{intx=31,y=2,s=0。
do
{s-=x*y。
x+=2。
y-=3。
}while(x%3==0)。
printf(“x=%d\ty=%d\ts=%d\n”,x,y,s)。
{inta[6]={10,20,30,40,50,60},i。
invert(a,0,5)。
i<6。
i++)printf(“%d,”,a[i])。
invert(ints[],inti,intj)
{intt。
if(i{invert(s,i+1j-1)。t=s[i]。s[i]=s[j]。s[j]=t。}}4.#includemain(){charstr[]=“TheCprogram”,c。inti。for(i=2。(c=str[i])!=‘\0’。i++){switch(c){case‘g’:++i。break。case‘o’:continue。default:printf(“%c”,c)。continue。}printf(“*”)。}printf(“\n”)。}5.structw{charlow;charhigh;};unionu{structwbyte;shortword;}uw;main(){intresult;uw.word=0x1234。printf(“wordvalue:%04x\n”,uw.word)。printf(“highbyte:%02x\n”,uw.byte.high)。printf(“lowbyte:%02x\n”,uw.byte.low)。uw.byte.low=0x74。printf(“wordvalue:%04x\n”,uw.word)。result=uw.word+0x2a34。printf(“theresult:%04x\n”,result)。}6.main(){char*s2=“IloveChina!”,**s1=&s2;char*s3,c,*s4=“w”。s3=&c。*s3=‘H’。s2=s2+2。printf(“%s\t%c\t%s\t%c\n”,s2,*s3,s4,**s1)。}四阅读下列程序,在处填入适当内容,使程序完整(20分,每个空2分)1.百马百担问题:有100匹马,驮100担货,大马驮3担,中马驮2担,两匹小马驮1担,问大、中、小马各多少匹?main(){inthb,hm,hl,n=0。for(hb=0。hb<=100。hb+=(1))for(hm=0。hm<=100-hb。hm+=(2)){hl=100-hb-(3)。if(hb/3+hm/2+2*(3)==100){n++。printf("hb=%d,hm=%d,hl=%d\n",hb/3,hm/2,2*hl)。}}printf("n=%d\n",n)。}2.用“起泡法”对输入的10个字符排序后按从小到大的次序输出。#defineN10charstr[N]。main(){inti,flag。for(flag=1。flag==1。){scanf("%s",str)。flag=0。printf("\n")。}sort(___(4)___)。for(i=0。ii++)printf("%c",str[i])。printf("\n")。}sort(charstr[N]){inti,j。chart。for(j=1。jj++)for(i=0。(i='\0')。i++)if(str[i]>str[i+1]){t=str[i]。____(5)____。____(6)____。}}3.以下程序是一个函数,功能是求二阶矩阵(m行n列矩阵)的所有靠外侧的各元素值之和。(本程序中二阶矩阵用一维数组来表示。)例如,矩阵为:300325731042则所有靠外侧的各元素值之和为3+0+0+3+2+3+1+0+4+2=18。add(intm,intn,intarr[]){inti,j,sum=0。for(i=0。ii=i+m-1)for(j=0。jj++)sum=sum+(7)。for(j=0。jj=j+n-1)for(i=1。(8)。i++)sum=sum+arr[i*n+j]。return(sum)。}4.用指针作函数参数,编程序求一维数组中的最大和最小的元素值。#defineN10main(){voidmaxmin(intarr[],int*pt1,int*pt2,intn)。intarray[N]={10,7,19,29,4,0,7,35,-16,21},*p1,*p2,a,b。p1=&a。p2=&b。maxmin(array,p1,p2,N)。printf("max=%d,min=%d",a,b)。}voidmaxmin(intarr[],int*pt1,int*pt2,intn){inti。*pt1=*pt2=arr[0]。for(i=1。ii++){if(arr[i]>*pt1)(9)。if(arr[i]<*pt2)(10)。}} 答案一选择题(24分,每小题2分)1.(B)2.(C)3.(B)4.(D)5.(D)6.(A)7.(D)8.(A)9.(D)10.(B)11.(C)12.(D)二判断对错,对的划“√”,错的划“×”(20分,每小题2分)1.(×)2.(√)3.(√)4.(×)5.(×)6.(√)7.(√)8.(×)9.(√)10.(√)三写出下列程序的运行结果(36分,每小题6分)1.s=202.x=35y=-4s=-293.60,50,40,30,20,10,4.eCpr*am5.wordvalue:12346.loveChina!Hwlhighbyte:12lowbyte:34wordvalue:1274theresult:3ca8四阅读下列程序,在处填入适当内容,使程序完整(20分,每个空2分)1.(1)3(2)2(3)hmhl2.(4)str(5)str[i]=str[i+1](6)str[i+1]=t3.(7
{invert(s,i+1j-1)。
t=s[i]。
s[i]=s[j]。
s[j]=t。
4.#include
{charstr[]=“TheCprogram”,c。
for(i=2。
(c=str[i])!
=‘\0’。
{switch(c)
{case‘g’:
++i。
case‘o’:
printf(“%c”,c)。
printf(“*”)。
5.structw
{charlow;
charhigh;
};
unionu
{structwbyte;
shortword;
}uw;
{intresult;
uw.word=0x1234。
printf(“wordvalue:
%04x\n”,uw.word)。
printf(“highbyte:
%02x\n”,uw.byte.high)。
printf(“lowbyte:
%02x\n”,uw.byte.low)。
uw.byte.low=0x74。
result=uw.word+0x2a34。
printf(“theresult:
%04x\n”,result)。
6.main()
{char*s2=“IloveChina!
”,**s1=&s2;
char*s3,c,*s4=“w”。
s3=&c。
*s3=‘H’。
s2=s2+2。
printf(“%s\t%c\t%s\t%c\n”,s2,*s3,s4,**s1)。
四阅读下列程序,在处填入适当内容,使程序完整(20分,每个空2分)
1.百马百担问题:
有100匹马,驮100担货,大马驮3担,中马驮2担,两匹小马驮1担,问大、中、小马各多少匹?
{inthb,hm,hl,n=0。
for(hb=0。
hb<=100。
hb+=
for(hm=0。
hm<=100-hb。
hm+=
(2))
{hl=100-hb-(3)。
if(hb/3+hm/2+2*(3)==100)
{n++。
printf("hb=%d,hm=%d,hl=%d\n",hb/3,hm/2,2*hl)。
printf("n=%d\n",n)。
2.用“起泡法”对输入的10个字符排序后按从小到大的次序输出。
#defineN10
charstr[N]。
{inti,flag。
for(flag=1。
flag==1。
)
{scanf("%s",str)。
flag=0。
sort(___(4)___)。
ii++)printf("%c",str[i])。printf("\n")。}sort(charstr[N]){inti,j。chart。for(j=1。jj++)for(i=0。(i='\0')。i++)if(str[i]>str[i+1]){t=str[i]。____(5)____。____(6)____。}}3.以下程序是一个函数,功能是求二阶矩阵(m行n列矩阵)的所有靠外侧的各元素值之和。(本程序中二阶矩阵用一维数组来表示。)例如,矩阵为:300325731042则所有靠外侧的各元素值之和为3+0+0+3+2+3+1+0+4+2=18。add(intm,intn,intarr[]){inti,j,sum=0。for(i=0。ii=i+m-1)for(j=0。jj++)sum=sum+(7)。for(j=0。jj=j+n-1)for(i=1。(8)。i++)sum=sum+arr[i*n+j]。return(sum)。}4.用指针作函数参数,编程序求一维数组中的最大和最小的元素值。#defineN10main(){voidmaxmin(intarr[],int*pt1,int*pt2,intn)。intarray[N]={10,7,19,29,4,0,7,35,-16,21},*p1,*p2,a,b。p1=&a。p2=&b。maxmin(array,p1,p2,N)。printf("max=%d,min=%d",a,b)。}voidmaxmin(intarr[],int*pt1,int*pt2,intn){inti。*pt1=*pt2=arr[0]。for(i=1。ii++){if(arr[i]>*pt1)(9)。if(arr[i]<*pt2)(10)。}} 答案一选择题(24分,每小题2分)1.(B)2.(C)3.(B)4.(D)5.(D)6.(A)7.(D)8.(A)9.(D)10.(B)11.(C)12.(D)二判断对错,对的划“√”,错的划“×”(20分,每小题2分)1.(×)2.(√)3.(√)4.(×)5.(×)6.(√)7.(√)8.(×)9.(√)10.(√)三写出下列程序的运行结果(36分,每小题6分)1.s=202.x=35y=-4s=-293.60,50,40,30,20,10,4.eCpr*am5.wordvalue:12346.loveChina!Hwlhighbyte:12lowbyte:34wordvalue:1274theresult:3ca8四阅读下列程序,在处填入适当内容,使程序完整(20分,每个空2分)1.(1)3(2)2(3)hmhl2.(4)str(5)str[i]=str[i+1](6)str[i+1]=t3.(7
printf("%c",str[i])。
sort(charstr[N])
{inti,j。
chart。
for(j=1。
jj++)for(i=0。(i='\0')。i++)if(str[i]>str[i+1]){t=str[i]。____(5)____。____(6)____。}}3.以下程序是一个函数,功能是求二阶矩阵(m行n列矩阵)的所有靠外侧的各元素值之和。(本程序中二阶矩阵用一维数组来表示。)例如,矩阵为:300325731042则所有靠外侧的各元素值之和为3+0+0+3+2+3+1+0+4+2=18。add(intm,intn,intarr[]){inti,j,sum=0。for(i=0。ii=i+m-1)for(j=0。jj++)sum=sum+(7)。for(j=0。jj=j+n-1)for(i=1。(8)。i++)sum=sum+arr[i*n+j]。return(sum)。}4.用指针作函数参数,编程序求一维数组中的最大和最小的元素值。#defineN10main(){voidmaxmin(intarr[],int*pt1,int*pt2,intn)。intarray[N]={10,7,19,29,4,0,7,35,-16,21},*p1,*p2,a,b。p1=&a。p2=&b。maxmin(array,p1,p2,N)。printf("max=%d,min=%d",a,b)。}voidmaxmin(intarr[],int*pt1,int*pt2,intn){inti。*pt1=*pt2=arr[0]。for(i=1。ii++){if(arr[i]>*pt1)(9)。if(arr[i]<*pt2)(10)。}} 答案一选择题(24分,每小题2分)1.(B)2.(C)3.(B)4.(D)5.(D)6.(A)7.(D)8.(A)9.(D)10.(B)11.(C)12.(D)二判断对错,对的划“√”,错的划“×”(20分,每小题2分)1.(×)2.(√)3.(√)4.(×)5.(×)6.(√)7.(√)8.(×)9.(√)10.(√)三写出下列程序的运行结果(36分,每小题6分)1.s=202.x=35y=-4s=-293.60,50,40,30,20,10,4.eCpr*am5.wordvalue:12346.loveChina!Hwlhighbyte:12lowbyte:34wordvalue:1274theresult:3ca8四阅读下列程序,在处填入适当内容,使程序完整(20分,每个空2分)1.(1)3(2)2(3)hmhl2.(4)str(5)str[i]=str[i+1](6)str[i+1]=t3.(7
(i='\0')。i++)if(str[i]>str[i+1]){t=str[i]。____(5)____。____(6)____。}}3.以下程序是一个函数,功能是求二阶矩阵(m行n列矩阵)的所有靠外侧的各元素值之和。(本程序中二阶矩阵用一维数组来表示。)例如,矩阵为:300325731042则所有靠外侧的各元素值之和为3+0+0+3+2+3+1+0+4+2=18。add(intm,intn,intarr[]){inti,j,sum=0。for(i=0。ii=i+m-1)for(j=0。jj++)sum=sum+(7)。for(j=0。jj=j+n-1)for(i=1。(8)。i++)sum=sum+arr[i*n+j]。return(sum)。}4.用指针作函数参数,编程序求一维数组中的最大和最小的元素值。#defineN10main(){voidmaxmin(intarr[],int*pt1,int*pt2,intn)。intarray[N]={10,7,19,29,4,0,7,35,-16,21},*p1,*p2,a,b。p1=&a。p2=&b。maxmin(array,p1,p2,N)。printf("max=%d,min=%d",a,b)。}voidmaxmin(intarr[],int*pt1,int*pt2,intn){inti。*pt1=*pt2=arr[0]。for(i=1。ii++){if(arr[i]>*pt1)(9)。if(arr[i]<*pt2)(10)。}} 答案一选择题(24分,每小题2分)1.(B)2.(C)3.(B)4.(D)5.(D)6.(A)7.(D)8.(A)9.(D)10.(B)11.(C)12.(D)二判断对错,对的划“√”,错的划“×”(20分,每小题2分)1.(×)2.(√)3.(√)4.(×)5.(×)6.(√)7.(√)8.(×)9.(√)10.(√)三写出下列程序的运行结果(36分,每小题6分)1.s=202.x=35y=-4s=-293.60,50,40,30,20,10,4.eCpr*am5.wordvalue:12346.loveChina!Hwlhighbyte:12lowbyte:34wordvalue:1274theresult:3ca8四阅读下列程序,在处填入适当内容,使程序完整(20分,每个空2分)1.(1)3(2)2(3)hmhl2.(4)str(5)str[i]=str[i+1](6)str[i+1]=t3.(7
='\0')。
if(str[i]>str[i+1])
{t=str[i]。
____(5)____。
____(6)____。
3.以下程序是一个函数,功能是求二阶矩阵(m行n列矩阵)的所有靠外侧的各元素值之和。
(本程序中二阶矩阵用一维数组来表示。
例如,矩阵为:
3003
2573
1042
则所有靠外侧的各元素值之和为3+0+0+3+2+3+1+0+4+2=18。
add(intm,intn,intarr[])
{inti,j,sum=0。
ii=i+m-1)for(j=0。jj++)sum=sum+(7)。for(j=0。jj=j+n-1)for(i=1。(8)。i++)sum=sum+arr[i*n+j]。return(sum)。}4.用指针作函数参数,编程序求一维数组中的最大和最小的元素值。#defineN10main(){voidmaxmin(intarr[],int*pt1,int*pt2,intn)。intarray[N]={10,7,19,29,4,0,7,35,-16,21},*p1,*p2,a,b。p1=&a。p2=&b。maxmin(array,p1,p2,N)。printf("max=%d,min=%d",a,b)。}voidmaxmin(intarr[],int*pt1,int*pt2,intn){inti。*pt1=*pt2=arr[0]。for(i=1。ii++){if(arr[i]>*pt1)(9)。if(arr[i]<*pt2)(10)。}} 答案一选择题(24分,每小题2分)1.(B)2.(C)3.(B)4.(D)5.(D)6.(A)7.(D)8.(A)9.(D)10.(B)11.(C)12.(D)二判断对错,对的划“√”,错的划“×”(20分,每小题2分)1.(×)2.(√)3.(√)4.(×)5.(×)6.(√)7.(√)8.(×)9.(√)10.(√)三写出下列程序的运行结果(36分,每小题6分)1.s=202.x=35y=-4s=-293.60,50,40,30,20,10,4.eCpr*am5.wordvalue:12346.loveChina!Hwlhighbyte:12lowbyte:34wordvalue:1274theresult:3ca8四阅读下列程序,在处填入适当内容,使程序完整(20分,每个空2分)1.(1)3(2)2(3)hmhl2.(4)str(5)str[i]=str[i+1](6)str[i+1]=t3.(7
i=i+m-1)
jj++)sum=sum+(7)。for(j=0。jj=j+n-1)for(i=1。(8)。i++)sum=sum+arr[i*n+j]。return(sum)。}4.用指针作函数参数,编程序求一维数组中的最大和最小的元素值。#defineN10main(){voidmaxmin(intarr[],int*pt1,int*pt2,intn)。intarray[N]={10,7,19,29,4,0,7,35,-16,21},*p1,*p2,a,b。p1=&a。p2=&b。maxmin(array,p1,p2,N)。printf("max=%d,min=%d",a,b)。}voidmaxmin(intarr[],int*pt1,int*pt2,intn){inti。*pt1=*pt2=arr[0]。for(i=1。ii++){if(arr[i]>*pt1)(9)。if(arr[i]<*pt2)(10)。}} 答案一选择题(24分,每小题2分)1.(B)2.(C)3.(B)4.(D)5.(D)6.(A)7.(D)8.(A)9.(D)10.(B)11.(C)12.(D)二判断对错,对的划“√”,错的划“×”(20分,每小题2分)1.(×)2.(√)3.(√)4.(×)5.(×)6.(√)7.(√)8.(×)9.(√)10.(√)三写出下列程序的运行结果(36分,每小题6分)1.s=202.x=35y=-4s=-293.60,50,40,30,20,10,4.eCpr*am5.wordvalue:12346.loveChina!Hwlhighbyte:12lowbyte:34wordvalue:1274theresult:3ca8四阅读下列程序,在处填入适当内容,使程序完整(20分,每个空2分)1.(1)3(2)2(3)hmhl2.(4)str(5)str[i]=str[i+1](6)str[i+1]=t3.(7
sum=sum+(7)。
jj=j+n-1)for(i=1。(8)。i++)sum=sum+arr[i*n+j]。return(sum)。}4.用指针作函数参数,编程序求一维数组中的最大和最小的元素值。#defineN10main(){voidmaxmin(intarr[],int*pt1,int*pt2,intn)。intarray[N]={10,7,19,29,4,0,7,35,-16,21},*p1,*p2,a,b。p1=&a。p2=&b。maxmin(array,p1,p2,N)。printf("max=%d,min=%d",a,b)。}voidmaxmin(intarr[],int*pt1,int*pt2,intn){inti。*pt1=*pt2=arr[0]。for(i=1。ii++){if(arr[i]>*pt1)(9)。if(arr[i]<*pt2)(10)。}} 答案一选择题(24分,每小题2分)1.(B)2.(C)3.(B)4.(D)5.(D)6.(A)7.(D)8.(A)9.(D)10.(B)11.(C)12.(D)二判断对错,对的划“√”,错的划“×”(20分,每小题2分)1.(×)2.(√)3.(√)4.(×)5.(×)6.(√)7.(√)8.(×)9.(√)10.(√)三写出下列程序的运行结果(36分,每小题6分)1.s=202.x=35y=-4s=-293.60,50,40,30,20,10,4.eCpr*am5.wordvalue:12346.loveChina!Hwlhighbyte:12lowbyte:34wordvalue:1274theresult:3ca8四阅读下列程序,在处填入适当内容,使程序完整(20分,每个空2分)1.(1)3(2)2(3)hmhl2.(4)str(5)str[i]=str[i+1](6)str[i+1]=t3.(7
j=j+n-1)
sum=sum+arr[i*n+j]。
return(sum)。
4.用指针作函数参数,编程序求一维数组中的最大和最小的元素值。
{voidmaxmin(intarr[],int*pt1,int*pt2,intn)。
intarray[N]={10,7,19,29,4,0,7,35,-16,21},*p1,*p2,a,b。
p1=&a。
p2=&b。
maxmin(array,p1,p2,N)。
printf("max=%d,min=%d",a,b)。
voidmaxmin(intarr[],int*pt1,int*pt2,intn)
*pt1=*pt2=arr[0]。
ii++){if(arr[i]>*pt1)(9)。if(arr[i]<*pt2)(10)。}} 答案一选择题(24分,每小题2分)1.(B)2.(C)3.(B)4.(D)5.(D)6.(A)7.(D)8.(A)9.(D)10.(B)11.(C)12.(D)二判断对错,对的划“√”,错的划“×”(20分,每小题2分)1.(×)2.(√)3.(√)4.(×)5.(×)6.(√)7.(√)8.(×)9.(√)10.(√)三写出下列程序的运行结果(36分,每小题6分)1.s=202.x=35y=-4s=-293.60,50,40,30,20,10,4.eCpr*am5.wordvalue:12346.loveChina!Hwlhighbyte:12lowbyte:34wordvalue:1274theresult:3ca8四阅读下列程序,在处填入适当内容,使程序完整(20分,每个空2分)1.(1)3(2)2(3)hmhl2.(4)str(5)str[i]=str[i+1](6)str[i+1]=t3.(7
{if(arr[i]>*pt1)(9)。
if(arr[i]<*pt2)(10)。
1.(B)2.(C)3.(B)4.(D)5.(D)6.(A)
7.(D)8.(A)9.(D)10.(B)11.(C)12.(D)
1.(×)2.(√)3.(√)4.(×)5.(×)
6.(√)7.(√)8.(×)9.(√)10.(√)
1.s=202.x=35y=-4s=-293.60,50,40,30,20,10,
4.eCpr*am5.wordvalue:
12346.loveChina!
Hwl
highbyte:
12
lowbyte:
34
wordvalue:
1274
theresult:
3ca8
(1)3
(2)2(3)hmhl
2.(4)str(5)str[i]=str[i+1](6)str[i+1]=t
3.(7
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1