《(完整版)专升本C语言真题.pdf》由会员分享,可在线阅读,更多相关《(完整版)专升本C语言真题.pdf(14页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、0505 年年 C C 语言语言六、单项选择(10 分,每题 1 分)1.下列变量定义正确的是_A. int 2ab;B. float ab;C. char $123D. int *per;2.若有说明 int a=1,x=2,y=3;下列不是 C 语言合法表达式的是A. +9B. (float)(x)C. a+D. (float)x+y3.若有说明 int i=1,j=2,k=3;表达式 i&j&k 的值为A. 1B. 2C. 3D. 44.若有说明 int a,b; 下面输入函数调用语句正确的是A. scanf(“%d%d”,a,b);B. scanf(“%d%d”,&a,&b);C. s
2、canf(%d%d,a,b);D. scanf(%d%d,&a,&b);5.下列不是关系表达式的是A. 35B. 13C. !35D.1+236.下列对数组的定义正确的是A. int a(10);B. int a10;C. int a10;D.int a10;7.下列对 C 程序结构的说法不正确的是A.C 程序是由一系列函数构成的B.C 程序可以有多个 main()函数C.C 程序中函数名不可以和变量名相同D.C 程序中可以定义函数8.若有说明 int *p,a10,j=3;下列指针变量赋值错误的是A.p=&j;B.p=&aj;C.p=a;D.p=0 x1000;9.若有说明 int a=4;
3、执行语句 a1 后,变量 a 的值A.1B.2C.3D.410.以只读的方式打开文本文件“test.txt”的正确方法是A.fopen(“test.txt”,”r”);B. fopen(“test.txt”,”rb”);C. fopen(“test”,”r”);D. fopen(“test.txt”);七、填空题(10 分,每题 1 分)a) 若有说明 a=-1;printf(“%d,%x,%on”,a,a,a)的输出结果是_。b) -32760 在内存中的存储形式是_(用十六进制表示)。c) 7%4 的值为_。d) 写出 C 语言中的三种逻辑运算符_。e) 循环语句有 for 语句、_和_。
4、f) continue 语句的作用是_。g) 字符串“123x4519abc”的长度为_。h) 数组 a10的第 i 个元素的指针是_。i) 若有结构体类型定义 struct STU int a; float x; char c; sizeof(struct STU)的值是_。j) FILE *fp;的作用是定义了一个_。八、写出下列程序的运行结果(10 分,每题 5 分)1.main()int i,s;for(i=10,s=0;i;s+=i,i-)printf(“result:%dn”,s);2.main()void fun();float x,y;x=10;fun(x,&y);printf
5、(“result:%.0f,%.0fn”,x,y);void fun(x,y)float x,*y;*y=x*x;九、编写程序(20 分)1.编写程序求某 1 三位数的平方和(8 分) 。2.编写程序求数列 1,1,2,3,5,8,13,.的前 100 项的和及平均值(12 分) 。0606 年年 C C 语言语言六、单项选择(15 分,每题 1 分)1、C 语言程序的基本单位是() A. 程序行 B. 语句 C. 函数 D. 字符2、可用作 C 语言用户标识符的一组字符串是() A. void define WORDB.a3_b3 _123 IFC. For abc Case D.2a DO
6、 sizeof3、设 int a=12,则执行完语句 a+=a-=a*a;后 a 的值是() A. 552 B. 264 C. 144D. 2644、以下叙述正确的是() A.do-while 语句构成的循环不能用其它语句构成的循环来代替。 B.do-while 语句构成的循环只能用break 语句退出。 C.用 do-while 语句构成的循环,在 while 后的表达式为非零时结束循环。 D. 用 do-while 语句构成的循环,在while 后的表达式为零时结束循环。5、设有说明 int (*ptr)10 其中的标识符 ptr 是() A. 10 个指向整型变量的指针 B. 指向 10
7、 个整型变量的函数指针 C. 一个指向具有 10 个整型元素的一维数组的指针 D.具有 10 个指针元素的一维指针数组,每个元素都只能指向整型量6、有以下程序段 typedef struct NODE int num; struct NODE *next; OLD;则以下叙述中正确的是() A.以上的说明形式非法 B. NODE是一个结构体类型C.OLD 是一个结构体类型 D.OLD 是一个结构体变量7、以下不能正确计算代数式值的C 语言表达式是()A.1/3*sin(1/2)*sin(1/2) B.sin(0.5)*sin(0.5)/3 C.pow(sin(0.5),2)/3 D.1/3.0
8、*pow(sin(1.0/2),2)8、C 语言规定,程序中各函数之间() A.既允许直接递归调用也允许间接递归调用 B.不允许直接递归调用也不允许间接递归调用C.允许直接递归调用不允许间接递归调用D.不允许直接递归调用允许间接递归调用9、在宏定义define PI 3.14159中,用宏名 PI 代替一个() A.单精度数 B.双精度数 C.常量D.字符串10、在 C 语言中,要求运算数必须是整型的运算符是() A.B. / C. =y)&(y=z) B.(x=y) AND (y=z) C.(x=y=z) D.(x=y)&(y=z)12、有以下程序段 int k=0,a=3,b=4,c=5;
9、 k=ac?c:k;执行该程序段后,k 的值是()A.3 B.2 C.1 D.013、若有定义 char *s=”NameAddressn”,则指针 s 所指字符串长度为( A.19 B.15 C.18D.说明不合法14、下述对 C 语言字符数组的描述中错误的是() A.字符数组可以存放字符串 B.字符数组中的字符串可以整体输入输出 C.可以在赋值语句中通过赋值运算符对字符数组整体赋值 D.不可以用关系运算符对字符数组中的字符串进行比较15、设有如下的函数 exam(float x)printf(“n%f”,x*x);则函数的类型为() A.与参数 x 的类型相同 B.是 void C.是 i
10、nt D.无法确定七、阅读下列程序,写出其运行结果(每小题 5 分,共 25 分)1.程序:main() int i,j,x; for(i=0;i=4;i+) for(j=1;j=4-i;j+) printf(“ ”);for(j=0;j0) switch(k) case 1:n+=k; case 2: case 3:n+=k; default:break;k-; printf(“%dn”,n);3.程序: main()int i,j,row,column,m; static int array33=100,200,300,28,72,-30,-850,2,6; m=array00; for(
11、i=0;i3;i+) for(j=0;j3;j+) if(arrayijm) m=arrayij; row=i;column=j; printf(“%d,%d,%dn”,m,row,column);4.程序: #include int p(int k,int a) int m,i,c=0; for(m=2;m=k;m+)for(i=2;im;i+) if(!(m%i) break; if(i=m) ac+=m; return c;#define MAXN 20main()int i,m,sMAXN; m=p(13,s); for(i=0;ib 的关系运算结果是_。10.若有定义 a10;则允许
12、数组 a 的下标最小可以是_。五、请写出下列程序的运行结果(本题10 分,每小题 2 分) 1.main() int n=100; if(n100) printf(“*”); else printf(“#”); 2.main() int a=2,b= -1,c=2; if(ab) if(b0) c=0; else c+=1; printf(“c=%dn”,c); 3.main() char s=”student0teacher”; printf(“%sn”,s);4.main() int a=3,b=4; printf(“a=%d,b=%dn”,+a,b+); 5.main() static
13、int a5,i;for(i=0;i5;i+) ai=ai+i;for(i=0;i5;i+) printf(“%d,”,ai);六、单选题(本题 10 分,每小题 2 分) 1.main() int k=11; printf(“k=%d, k=%o, k=%xn”,k,k,k);A.k=11,k=12,k=11 B. k=11,k=13,k=13C. k=11,k=013,k=0 xb D. k=11,k=13,k=b 2.main() int y=10; while(y-); printf(“y=%dn”,y);A.y=10 B.y=1 C.y=随机值 D.y= -13.main() int
14、 a,b,*p1,*p2; p1=&a;p2=&b; *p1=100;*p2=200;c=*p1+*p2; printf(“%dn”,c);A.300 B.100+200 C.100 D.200 4.在下列程序中,当执行到gets(ss);语句时,若输入字符为”ABC”时,则该程序的输出结果是: main() char ss10=12345; strcat(ss,”6789”); gets(ss);printf(%sn,ss);A.ABC B.ABC9 C.123456ABC D.ABC4567895.main() char a=morning,t; int i,j=0; for(i=1;i7
15、;i+) if(aj、*=、&中,其优先级最低的是_。 6.定义共用体类型使用关键字_。 7.C 语言中,break 语句通常用在_语句和循环语句中。 8.表达式 7*2/5+3.5+b值的类型是_。 9.设有语句 int a=5;执行语句 printf(%d,+a);后,输出结果为_。 10.执行下面程序段后,输出的结果为_。 for(i=1;i5;i+) printf(*);七、判断题(10 分,每题 1 分) 1.C 语言程序总是从源程序文件中的第一个函数开始执行。( ) 2.数组名代表数组所占存储区的首地址,其值不可以改变。( ) 3.elseif 不属于 C 语言关键字(保留字)(
16、) 4.指针变量可以加减一个整数。( ) 5.宏替换不占用运行时间。( ) 6.C 语言中转义字符以开头。( ) 7.C 语言规定,函数返回值的类型是由return 语句中的表达式类型决定的。( ) 8.如果在一个函数中的复合语句中定义了一个变量,则该变量只在该复合语句中有效。( ) 9.C 语言中的函数既可以递归定义,又可以嵌套定义。( ) 10.main 函数可以有参数。( )八、程序分析题(12 分,每题 3 分) 1.指出程序的错误并改正 #include void main() int a,b,max;scanf(%d,%d,&a,&b);if(ab) max=a max=b;pri
17、ntf(max=%d,max);2.写出下面程序的运行结果:#include void main()int x=0,1,2,3,4,5,6,7,8,9; int i,sum=0; for(i=0;i10;i=i+2) sum=sum+xi; printf(%d,sum);3.写出程序的运行结果 #include void main()char s=”ABC”,*p; for(p=s;ps+3;p+) printf(“%sn”,p);4.写出下面程序的功能void ss(char *s1,char *s2)while(*s1!=0) s1+; while(*s2!=0) *s1=*s2; s1+
18、; s2+;*s1=0;九、程序设计题(18 分,每题 9 分) 1.从键盘上任意输入一个字符串,统计字符串中大小写英文字母出现的次数。0909 年年 C C 语言语言六、填空题(8 分,每题 2 分)1若 a 是 int 型变量,且 a=5,则表达式(a+100)%2+a/2 的值为:_。2. C 语言程序中引用标准输入输出库函数,必须在每个源文件的首部写下#include 。3若 int 型变量占内存 2 个字节,double 型变量占内存 8 个字节,有如下定义:union data int i; double d;a;则变量 a 在内存中所占字节数为_。4当文件关闭成功后,fclose
19、 函数返回值为_。七、阅读程序题(15 分,每题 3 分)1下面程序的运行结果是_。#include main() int i=2,j=3,k; k=i+j; int k=8; if(i=3) printf(“%d”,k); else printf(“%d”,j); printf(“%d%d”,i,k);2.下面程序的运行结果是_。#include define SIZE 8main() char s=“GDBFHACE”; int i,j,t; for(i=0;iSIZE;i+); for(j=i+1;jsj) t=si; si=sj; sj=t; for(i=0;iSIZE;i+) pri
20、ntf(“%c”,si); 3. 下面程序的运行结果是_。#include int fun(int a,int b,int *cn,int *dn) *cn=a*b+b*b;*dn=a*a-b*b;a=5;b=6; main() int a=2,b=3,c=5,d=6; fun(a,b,&c,&d); printf(“a=%d,b=%d,c=%dn”,a,b,c,d);4. 下面程序的运行结果是_。#include int fun(int x) static y=2;y+;x+=y;return x; main() int k; k=fun(3); printf(“%d,%dn”,k,fun(
21、k);5. 下面程序的运行结果是_。#include main() int s=0,m; for(m=7;m=3;m-) switch(m) case 1:case 4:case 7:s+;break;case 2:case 3:case 6:s+=2;case 0:case 5:s+=3;break; printf(“s=%d n”,s);八、完善程序题(15 分,每题 3 分)1下面程序的功能是找出100 到 200 之间不能被 3 整除但能被 5 整除的数。#include main() int m; for(m=100;m=200;m+) if (_); printf(“%d t”,m
22、); 2.下面程序通过指向整型变量的指针将数组 m43的内容按 4 行 3 列的格式输出,请输出 printf()填入适当的参数,使之通过指针p 将数组元素按要求输出。#include main() int m43=1,2,3,4,5,6,7,8,9,10,11,12; int i,j,*p=m;for(i=0;i4;i+) for(j=0;j3;j+) printf(“%4d”,_); printf(“n”);3.下面程序能够完成交换数组a 和数组 b 中的对应元素的功能。#include swap(int *p1,int *p2) int temp;_;main() int a5=1,3,
23、5,7,9; int b5=2,4,6,8,10; int i; for(i=0;i5;i+) swap(&ai,&bi);for(i=0;i5;i+) printf(“a%d=%-4d”,i,ai);printf(“n”);for(i=0;i5;i+) printf(“b%d=%-4d”,i,bi);printf(“n”);4.在某大学举行的演讲比赛中,有十个评委为参赛的选手打分,分数为分。选手最后得分为:去掉一个最高分和一个最低分后其余八个分数的平均值。#include main() int max,min,score,i; int sum=0; max=0;min=100;for(i=0
24、;i10;i+) printf(“Input number %d=”,i+); scanf(“%d”,&score); sum+=score; if(maxscore) min=score;printf(“n”);printf(“Canceled max score:%dnCanceled min score:%d”,max,min);printf(“average score:%lfn”,_ )5.把指针 str 所指的字符串按相反的顺序赋给rev。#include main() char *str=“abcdefg”; char rev10; int i; printf(“n”); for
25、(i=0;i7;i+) _; revi=0; printf(“%sn”,rev);九、编程改错题(12 分,每题 3 分)1(1)#include (2)char a=Beijing;(3)main( )(4) (5) printf(%s is one city in china.n,a);(6) p1( );(7) p2( );(8) (9) p1( )(10) (11) printf(%s is one of the biggest city,a);(12) return;(13) (14) p2( )(15) (16) printf(in the world.n);(17) return
26、;(18) 错误的行是:_改为:_2.求1k k kk1k1k121005010(1) #include (2) main()(3) (4) int n1=100,n2=50,n3=10;(5) int k;(6) float s1=0,s2=0,s3=0;(7) for(k=1;k=n1;k+);(8) s1=s1+k;(9) for(k=1;k=n2;k+);(10) s2=s2+k*k;(11) for(k=1;k=n3;k+);(12) s3=s3+k/10;(13) printf(total=%8.2fn,s1+s2+s3);(14) 错误的行是:_改为:_3.本程序能够在屏幕中央显
27、示出如下图形。#(1) #include (2) void main()(3) (4) int i,j,k;(5) for(i=1;i=4;i+)(6) (7) for(k=1;k=i+1;k+)(8) printf( );(9) for(j=1;j=i;j+)(10) printf(#);(11) printf(n );(12) (13) 错误的行是:_改为:_4.将给定的字符串写入指定的文件中去。(1) #include (2) main()(3) (4) int i;(5) FILE *fp;(6) char a8=“Turbo C”, “BASIC”, “FORTRAN”, “COBOL”;(7) if (fp=fopen(“myfile.txt”, “w”)=NULL)(8) (9) printf(“cant creat the file.n ”);(10) exit(1);(11) (12) for(i=0;i4;i+)(13) (14) fputs(ai,fp);(15) fputs(“n”,fp);(16) (17) fclose(fp);(18) 错误的行是:_改为:_
限制150内