logo资料库

2014年江西师范大学程序设计(C语言)考研真题.doc

第1页 / 共6页
第2页 / 共6页
第3页 / 共6页
第4页 / 共6页
第5页 / 共6页
第6页 / 共6页
资料共6页,全文预览结束
2014 年江西师范大学程序设计(C 语言)考研真题 一、单项选择题(每小题 2 分,共 30 分) 1.C 语言程序的 3 种基本结构是顺序结构、选择结构和()结构。 A.循环 B.递归 C.转移 D.嵌套 2.以下能正确地定义整型变量 a、b 和 c,并为它们赋初值 5 的语句是()。 A.inta=b=c=5; B.inta,b,c=5; C.a=5,b=5,c=5; D.inta=5,b=5,c=5; 3.在嵌套使用 if 语句时,C 语言规定 else 总是()。 A.和之前与其具有相同缩进位置的 if 配对 B.和之前与其最近的 if 配对 C.和之前与其最近的且不带 else 的 if 配对 D.和之前的第一个 if 配对 4.在下列选项中,没有构成死循环的程序段是()。 A.inti=100; B.for(:;); while(1) {i=i%100+1; if(i>100)break; } C.intk=1000; D.ints=36;do{++k;}while(k>=10000);while(s);--s 5.以下叙述中不正确的是()。 A.在不同的函数中可以使用相同名字的变量 B.函数中的形式参数是局部变量 C.在一个函数内定义的变量只在本函数范围内有效 D.在一个函数内的复合语句中定义的变量在本函数范围内有效 6.设有定义“inta=1,b=2,c=3,d=4,m=2,n=2;”,则执行表达式“(m=a>b)&&(n=c>d)”后,n 的值为()。 A.1 B.2 C.3 D.0 7.以下数组定义中不正确的是()。 A.inta[2][3]; B.intb[][3]={0,1,2,3}; C.intc[100][100]={0};
D.intd[3][]={{1,2},{1,2,3},{1,2,3,4}}; 8.若有定义“intn=2,*p=&n,*q=p;”,则以下非法的赋值语句是()。 A.p=q; B.*p=*q; C.n=*q D.p=n; 9.以下选项中,不能定义 s 为合法的结构变量的是()。 10.在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是()。 A.地址传递 B.单向值传递 C.由实参传给形参,再由形参传回实参 D.传递方式由用户指定 11.若有定义“intk[2][3],*pk[3];”,则下列语句中正确的是()。 A.pk=k; B.pk[0]=&k[1][2]; C.pk=k[0]; D.pk[1]=k; 12.以下叙述中错误的是()。 A.函数 gets()用于从终端读入字符串 B.函数 getchar()用于从磁盘文件读入字符 C.函数 fputs()用于把字符串输出到文件 D.函数 fwrite()用于以二进制形式输出数据到文件 13.以下正确的函数声明语句是()。 A.doublefun(intx;y); B.doublefun(intx;inty); C.doublefun(intx,inty); D.doublefun(intx,y); 14.已知字母‘A’的 ASCII 值为 65,若有 charch=‘A’+‘6’-‘3’,则 ch 的值是()。 A.‘D’ B.68 C.不确定的值 D.‘C’ 15.下列能正确定义字符串的语句是()。 A.charstr[]={‘\064’}; B.charstr=“kx12”; C.charstr=“”;
D.charstr[]=“\0”; 二、填空题(每空 2 分,共 20 分) 1.C 语言中的标识符只能由 3 种字符组成,它们是()、()和() 2.若整型变量 a 和 b 的值分别为 3 和 5,要求按以下格式输出 a 和 b 的值。 a=3 b=5 请完成输出语句“printf(“()”,a,b);”。 3.下列程序运行时,输入“1234567890<回车>”,则 while 循环体将执行()次。 voidmain() {charch; while((ch=getchar())==‘O’)printf(“*”); } 4.以下函数用来求两个整数之和,请填空。 intfun(intx,inty){();z=x+y;()} 5.假定 x 和 y 为 double 型,则表达式“x=2,y=x+3/2”的值为() 6.若有如下结构说明,请填空,以完成对数组 t 的定义,数组 t 的每个元素为该结构类型: ()t[20];。 structSTRU{inta;intb;charc;doubled}; 7.已定义“charc=‘a’;inta=1,b;”,执行“b=!c&&a;”后 b 的值为() 三、程序分析题(本大题共 4 小题,每小题 6 分,共 24 分) 1.写出下面程序的运行结果。 #include main() {inta=0,b=0,c=0,d=0; if(a=1)b=1,c=2; elsed=3; printf(“%d,%d,%d,%d\n”,a,b,c,d); } 2.写出下面程序的运行结果。 #include main() {intx=1,y=0; switch(x) {case1: switch(y) {caseO:printf(“Title1\n”);break; case1:printf(“Title2\n”);break; } case2:printf(“Title3\n”); 3.写出下面程序的运行结果。 #include #defineN5 voidfun(); main()
{inti; for(i=1;i main() {inti,a[10]={1,2,3,4,5,6,7,8,9,10},temp; temp=a[9]; for([9i;i][i-1]; a[0]=temp; for(i=0;i<10;i++) printf(”%d”,a[i]); 四、程序填空题(本大题共 4 小题,每空 2 分,共 24 分) 1.下列程序输出 1~100 之间满足下列要求的数:各位数字的积大于各位数字的和,例如 23.2*3>2+3。请在处填上正确的答案将程序补充完整。 voidmain() {intn,k,s,m; for(n=1;n<=100;n++) {k=1; (1); m=n; while(m!=0) {(2); (3); m=m/10; } if(k>s)printf(“%d”,n); } } 2.下列程序中,函数 fun()的功能是计算 x²-2x+6,主函数中将调用函数 fun()计算 yl=(x+8) ²-2(x+8)+6 和 y2=sin²(x)-2sin(x)+6,请完成程序。 (1)fun(doublex) {return(x*x-2*x+6); } main() {doublex,yl,y2; scanf(“%lf”,&x); y1=fun((2)); y2=fun((3));
x[4][4],n=0,i,j; printf(“yl=%lf,y2=%lf\n”,yl,y2); 3.以下程序按下面指定的数据给 x 数组的下三角置数,并按如下形式输出,请填空。 4 37 269 15810 #include main() {int for(j=0;j<4;j++) for(i=3;ij+;_+;x[i][j]=(1)(2));} for(i=0;i<4;i++) {for(j=0;j<=i;j++)printf(“%3d”,x[i][j]); (3) } 4.下面程序实现以下功能:先从键盘输入一个字符串,将小写字母转换为大写字母后输出到 文件中,然后从该文件读出字符串并显示出来,请完成程序。 #include main() {FILE*fp; charstr[100]; charfilename[20]; inti=0; gets(filename); if((fp=fopen(filename,(1)))=NULL) {printf(“Can'topenthisfile.\n”);exit(0):} printf(“Inputastring:\n”); gets(str); while(str[i]) (if(str[i]>=‘a’&&str[i]<=‘z')str[i]=(2) fputc(str[i],fp); i++; } fclose(fp); fp=fopen(filename,(3)); fgets(str,100,fp); printf(“%s\n”,str); fclose(fp); 五、程序设计题(1~3 题,每小题 12 分,第 4 小题 16 分,共 52 分) 1.(12 分)编写一个 C 程序,从键盘输入 30 个实数,分别计算并输出以下 5 个量:所有正数 之和,所有负数之和,所有数的绝对值之和,正数的个数,负数的个数。 2.(12 分)编写一个函数,其功能是将一个正整数 n 转换成字符串并输出(要求输出时各字符 之间用一个空格分隔),再编写一个主函数,从键盘输入正整数,并判断其输·入的合理性。 例如,输入的正整数为 123,应输出字符串“123”。
3.(12 分)编写一个 C 程序,从键盘输入一个 5 行 5 列的二维整型数组的数据,计 算二维数组中每一行的最大值,并将此最大值顺序存放在一个长度为 5 的一维数组中, 最后按矩阵形式输出二维数组中的各元素,且各行中的最大值输出到相应行的右边。4.(16 分)编写 C 程序,计算并输出下列级数之和。 其 中 n 与 x 从 键 盘输 入 。
分享到:
收藏