资源描述
C语言期末试题及答案
C语言期末考试试题 2008年04月12日 星期六 00:22 一 选择题〔24分,每题2分〕1.已知函数fread的调用形式为fread(buffer,size,count,fp),其中buffer代表的是〔〕。
A 存放读入数据项的存储区 B 存放读入数据的地址或指向此地址的指针 C 一个指向所读文件的文件指针 D 一个整形变量,代表要读入的数据项总数2.以下程序的输出结果为〔 〕。main( ) { int i=010,j=10; printf("%d,%d\n",i++,j--); } A 11,9 B 9,10 C 8,10 D 9,9 3.设a为int型变量,执行以下赋值语句后,a的取值分别是〔 〕。
a=125.534; a=20.0/3; a=(int)125.521%4; a=5 main() { char str[ ]="The C program",c; int i; for(i=2;(c=str[i])!='\0';i++) { switch(c) { case 'g': ++i; break; //由于++i,跳过了g后面的1个字母 case 'o': continue; default: printf(“%c〞,c); continue; } printf(“*〞); } printf(“\n〞); }5.struct w //结构体 { char low; char high; }; union u //共用体 { struct w byte; short word; }uw; main( ) { int result; uw.word=0x1234; printf("word value:%04x\n",uw.word); printf("high byte:%02x\n",uw.byte.high); printf("low byte:%02x\n",uw.byte.low); uw.byte.low=0x74; printf("word value:%04x\n",uw.word); result=uw.word+0x2a34; printf("the result:%04x\n",result); }6. main() { char *s2="I love China!",**s1= char *s3,c,*s4="w"; s3= *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担。
2.大一c语言期末考题,求答案
“china〞; B. char str[7]= {'c', 'h', 'i', 'n', 'a'}; C. char str1[]= “china〞,str2[]=“123〞; D. char str1[10]; str1= “china〞; 4. 以下对二维数组a进行正确初始化的是〔 〕 A. int a[2][3]={{1,2},{3,4},{5,6}}; B. int a[ ][3]={1,2,3,4,5,6}; C. int a[2][ ]={1,2,3,4,5,6}; D. int a[2][ ]={{1,2},{3,4}}; 5. 选出以下标识符中不是合法的标识符的是〔 〕 A. hot_do B. cat1 C. _pri D. 2ab 6. 以下说法中正确的是〔 〕 A. C语言程序总是从第一个的函数开始执行 B. 在C语言程序中,要调用的函数必必须在main〔)函数中定义 C. C语言程序总是从main〔)函数开始执行 D. C语言程序中的main〔)函数必必须放在程序的开始部分 7. 假设已定义:int a[9], *p=a;并在以后的语句中未改变p的值,不能表示a[1]地址的表达式为〔 〕 A. p+1 B. a+1 C. a++ D. ++p 8. 假设有说明: int i,j=7, *p= B. *p=* C. i= D. i=* *p; 9. 假设变量c为char类型,能正确推断出c为小写字母的表达式是〔 〕 A. 'a'= 'a') || (c=c) D. (c>= 'a') p=a; *(p+3)+=2; printf( “%d,%d\n〞,*p,*(p+3) ); } A. 0, 5 B. 1, 6 C. 1, 5 D. 0, 6 11. 以下程序的输出结果是〔 〕 main() { int a=5; float x=3.14; a*=x*('E'- 'A'); printf(“%f\n〞,(float)a); } A. 62.000000 B. 62.800000 C. 63.000000 D. 62 12. 以下程序的输出结果是〔 〕 #define f(x) x*x main() { int a=6,b=2,c; c=f(a)/f(b); printf(“%d\n〞,c); } A. 9 B. 6 C. 36 D. 18 13. 定义如下变量和数组:int i; int x[3][3]={1,2,3,4,5,6,7,8,9}; 则语句for(i=0;ib?a++:b++,a+b〕的值是〔 〕。
A 7 B 8 C 9 D 2 4.设a为int型变量,执行以下赋值语句后,a的取值分别是〔 〕。 a=125.534; a=(int)125.521%4; a=5n B ++p->n C p->n++ D (*p).n++ 14.C语言中的文件类型只有〔 〕。 A 索引文件和文本文件两种 B 文本文件一种 C 二进制文件一种 D ASCII码文件和二进制文件两种 二 推断对错,对的划“√〞,错的划“*〞〔5分,每题0.5分〕 1.在Turbo C中,整型数据在内存中占2个字节。
〔 〕 2.int i=20;switch(i/10){case 2:printf("A");case 1: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(char a[10]);则p是函数名。
〔 〕 10.用fopen("file","r+");打开的文件"file"可以进行修改。 〔 〕 三 写出以下程序的运行结果〔10分,每题2分〕 1.float average (float array[10]) { int i; float aver,sum=array[0]; for (i=1;imax) max=array[i][j]; (2) ; } main( ) { int a[3][4], i,j; for(i=0;ia[k]) k=j; if(k!=i) { t=a[k]; a[k]=a[i]; a[i]=t;} } printf("The sorted numbers:\n"); for(i=1;i #include #include int main() { int n,*a,i,j,t; srand(time(NULL)); do { scanf("%d", }while(n3?2:13.下面哪一项是不正确的字符串赋值或赋初值的方法〔〕A.char*str;str=“china〞;B.charstr[7]={'c','h','i','n','a'};C.charstr1[]=“china〞,str2[]=“123〞;D.charstr1[10];str1=“china〞;4.以下对二维数组a进行正确初始化的是〔〕A.inta[2][3]={{1,2},{3,4},{5,6}};B.inta[][3]={1,2,3,4,5,6};C.inta[2][]={1,2,3,4,5,6};D.inta[2][]={{1,2},{3,4}};5.选出以下标识符中不是合法的标识符的是〔〕A.hot_doB.cat1C._priD.2ab6.以下说法中正确的是〔〕A.C语言程序总是从第一个的函数开始执行B.在C语言程序中,要调用的函数必必须在main〔)函数中定义C.C语言程序总是从main〔)函数开始执行D.C语言程序中的main〔)函数必必须放在程序的开始部分7.假设已定义:inta[9],*p=a;并在以后的语句中未改变p的值,不能表示a[1]地址的表达式为〔〕A.p+1B.a+1C.a++D.++p8.假设有说明:inti,j=7,*p=B.*p=*C.i=D.i=**p;9.假设变量c为char类型,能正确推断出c为小写字母的表达式是〔〕A.'a'='a')||(c=c)D.(c>='a')p=a;*(p+3)+=2;printf(“%d,%d\n〞,*p,*(p+3));}A.0,5B.1,6C.1,5D.0,611.以下程序的输出结果是〔〕main(){inta=5;floatx=3.14;a*=x*('E'-'A');printf(“%f\n〞,(float)a);}A.62.000000B.62.800000C.63.000000D.6212.以下程序的输出结果是〔〕#definef(x)x*xmain(){inta=6,b=2,c;c=f(a)/f(b);printf(“%d\n〞,c);}A.9B.6C.36D.1813.定义如下变量和数组:inti;intx[3][3]={1,2,3,4,5,6,7,8,9};则语句for(i=0;i<3;i++)printf("%d",x[i][2-i]);的输出结果是〔〕A.159B.147C.357D.36914.以下程序段的输出结果是〔〕voidmain(){intk;for(k=1;k<5;k++){if(k%2!=0)printf(“#〞);elseprintf(“*〞);}}A.#*#*B.*#*#C.##D.**15.以下程序执行后输出的结果是〔〕intd=1;fun(intp){intd=5;d+=p++;printf("%d,",d);}main(){inta=3;fun(a);d+=a++;printf("%d\n",d);}A.8,4B.9,6C.9,4D.8,5二.填空题〔共7题,每空2分,共30分〕1.数组inta[3][5];共定义了_______________个元素。
2.有floatf=3.1415927;则printf(“%5.4f〞,f);输出的结果是_______________。3.下面程序的功能是:输出100以内〔不包涵100〕能被3整除且个位数为6的所有整数,请填空。
“intx=2,y〞说明,则逗号表达式“y=x+5,x+y〞的值是_______________5.以下是使用指针,进行字符串复制的程序,请填空。main(){chara[]=“TsinghuaUniversity〞,b[30],*p1,*p2;p1=a;p2=b;for(;*p1!='_______________';p1++,p2++)_______________=_______________;*p2='_______________';printf(“stringais:%s\n〞,a);printf(“stringbis:%s\n〞,b);}6.下面程序用冒泡法对数组a进行降序排序,请填空。
main(){inta[5]={4,7,2,5,1};inti,j,m;for(i=0;i<4;i++)for(j=0;j<_______________;j++)if(_______________<_______________){m=a[j];a[j]=a[j+1];a[j+1]=m;}for(i=0;i<5;i++)printf("%d",a[i]);}7.函数fun的功能是:使一个字符串按逆序存放,请填空。voidfun(charstr[]){charm;inti,j;for(i=0,j=strlen(str);i<_______________;i++,j--){m=str[i];str[i]=_______________;str[j-1]=m;}printf("therotatedstringis%s\n",_______________);}。
1、有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
2、题目:企业发放的奖金依据利润提成。利润〔i〕低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润i,求应发放奖金总数?
3、一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?
4、输入某年某月某日,推断这一天是这一年的第几天?
5、输入三个整数x,y,z,请把这三个数由小到大输出。
6、用*号输出字母c的图案。
7、输出特别图案,请在c环境中运行,看一看,very beautiful!
8、输出9*9口诀。
9、要求输出国际象棋棋盘。
展开阅读全文