收藏 分销(赏)

专升本C语言真题.doc

上传人:精*** 文档编号:2179714 上传时间:2024-05-22 格式:DOC 页数:14 大小:123.05KB 下载积分:8 金币
下载 相关 举报
专升本C语言真题.doc_第1页
第1页 / 共14页
专升本C语言真题.doc_第2页
第2页 / 共14页


点击查看更多>>
资源描述
05年C语言 六、单项选择(10分,每题1分) 1.下列变量定义正确的是________ A. int 2ab; B. float a>b; C. char $123 D. int *per; 2.若有说明int a=1,x=2,y=3;下列不是C语言合法表达式的是 A. ++9 B. (float)(x) C. a++ D. (float)x+y 3.若有说明int i=1,j=2,k=3;表达式i&&j&&k的值为 A. 1 B. 2 C. 3 D. 4 4.若有说明int a,b; 下面输入函数调用语句正确的是 A. scanf(“%d%d”,a,b); B. scanf(“%d%d”,&a,&b); C. scanf(%d%d,a,b); D. scanf(%d%d,&a,&b); 5.下列不是关系表达式的是 A. 3>5 B. 1<2>3 C. !3>5 D.1+2>3 6.下列对数组的定义正确的是 A. int a(10); B. int a[10]; C. int a{10}; D.int a10; 7.下列对C程序结构的说法不正确的是 A.C程序是由一系列函数构成的 B.C程序可以有多个main()函数 C.C程序中函数名不可以和变量名相同 D.C程序中可以定义函数 8.若有说明int *p,a[10],j=3;下列指针变量赋值错误的是 A.p=&j; B.p=&a[j]; C.p=a; D.p=0x1000; 9.若有说明int a=4;执行语句a>>1后,变量a的值 A.1 B.2 C.3 D.4 10.以只读的方式打开文本文件“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,%o\n”,a,a,a)的输出结果是______________。 b) -32760在内存中的存储形式是__________(用十六进制表示)。 c) 7%4的值为________。 d) 写出C语言中的三种逻辑运算符____________。 e) 循环语句有for语句、__________和__________。 f) continue语句的作用是_______________________。 g) 字符串“123\x45\19abc”的长度为____________。 h) 数组a[10]的第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:%d\n”,s); } 2.main() { void fun(); float x,y; x=10; fun(x,&y); printf(“result:%.0f,%.0f\n”,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分)。 06年C语言 六、单项选择(15分,每题1分) 1、C语言程序的基本单位是( ) A. 程序行 B. 语句 C. 函数 D. 字符 2、可用作C语言用户标识符的一组字符串是( ) A. void define WORD B.a3_b3 _123 IF C. For –abc Case D.2a DO sizeof 3、设int a=12,则执行完语句a+=a-=a*a;后a的值是( ) A. 552 B. 264 C. 144 D. -264 4、以下叙述正确的是( ) A.do-while语句构成的循环不能用其它语句构成的循环来代替。 B.do-while语句构成的循环只能用break语句退出。 C.用do-while语句构成的循环,在while后的表达式为非零时结束循环。 D. 用do-while语句构成的循环,在while后的表达式为零时结束循环。 5、设有说明int (*ptr)[10] 其中的标识符ptr是( ) A. 10个指向整型变量的指针 B. 指向10个整型变量的函数指针 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*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. < D.! 11、为表示关系x≥y≥z,应使用的C语言表达式是( ) A.(x>=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; k=a>c?c:k; 执行该程序段后,k的值是( ) A.3 B.2 C.1 D.0 13、若有定义char *s=”\\”Name\\Address\n”,则指针s所指字符串长度为( ) A.19 B.15 C.18 D.说明不合法 14、下述对C语言字符数组的描述中错误的是( ) A.字符数组可以存放字符串 B.字符数组中的字符串可以整体输入输出 C.可以在赋值语句中通过赋值运算符对字符数组整体赋值 D.不可以用关系运算符对字符数组中的字符串进行比较 15、设有如下的函数 exam(float x){ printf(“\n%f”,x*x); } 则函数的类型为( ) A.与参数x的类型相同 B.是void C.是int 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;j<=2*i+1;j++) printf(“*”); printf(“\n”); } } 2.程序: main() { int k=3,n=0; while(k>0) {switch(k) {case 1:n+=k; case 2: case 3:n+=k; default:break; } k--; } printf(“%d\n”,n); } 3.程序: main() {int i,j,row,column,m; static int array[3][3]={{100,200,300},{28,72,-30},{-850,2,6}}; m=array[0][0]; for(i=0;i<3;i++) for(j=0;j<3;j++) if(array[i][j]<m) {m=array[i][j]; row=i;column=j; } printf(“%d,%d,%d\n”,m,row,column); } 4.程序: #include<stdio.h> int p(int k,int a[]) {int m,i,c=0; for(m=2;m<=k;m++) for(i=2;i<m;i++) {if(!(m%i)) break; if(i==m) a[c++]=m; } return c; } #define MAXN 20 main() {int i,m,s[MAXN]; m=p(13,s); for(i=0;i<m;i++) printf(“%4d”,s[i]); printf(“\n”); } 5.程序: int f(int n) {if(n==0||n==1) return 1; else return f(n-2)+2*f(n-1); } main() {int n=5; printf(“%d”,f(n)); } 八、程序填空;按照要求完成下面的程序(函数)(每空2分,共10分) 1.本函数用对分查找法,在以按字母次序从小到大排序的字符数组list中查找字符c,若c在数组中,函数返回字符c在数组中的下标,否则返回-1。 int search(char list[],char c,int len) {int low,high,k; low=0;high=len-1; whiel( (1) ) {k=(low+high)/2; if( (2) ) return k; else if( (3) ) high=k-1; else low=k+1; } return -1; } 2.函数mycmp(char *s,char *t)的功能是比较字符串s和t的大小,当s等于t时返回0,否则返回s和t的第一个不同字符的ASCII码的差值。 mycmp(char *s,char *t) { while(*s==*t) {if( (4) ) return 0; ++s; ++t; } return ( (5) ) } 07年C语言 四、填空题(本题20分,每空2分) 1.C语言中规定,整型常量可以用十进制、八进制和________进制形式来表示。 2.结构化程序设计中的三种基本结构为:顺序结构、________和循环结构。 3.在C语言中,对于负整数,在内存中是以________码形式进行存储。 4.在C语言中,若被定义为int类型的变量,在内存中占用_______个字节的存储空间。 5.已有定义:int a[5],*p;当执行了p=&a[3];语句时,是将指针变量p指向了a数组的第___个元素的地址。 6.若某变量被定义为auto变量的存储单元,则将被分配在内存的___________存储区域。 7.在下列给出的字符数组c,它在内存中所占用的字节数是__________。 char c[]={“C language”}; 8.在C语言中,能够实现循环结构的语句有: while语句、if/goto语句、do-while语句以及_________语句。 9.若有a=3,b=5; 则求a>b的关系运算结果是____________。 10.若有定义a[10];则允许数组a的下标最小可以是________。 五、请写出下列程序的运行结果(本题10分,每小题2分) 1.main() {int n=100; if(n>100) printf(“***”); else printf(“###”); } 2.main() {int a=2,b= -1,c=2; if(a<b) if(b<0) c=0; else c+=1; printf(“c=%d\n”,c); } 3.main() {char s[]=”student\0teacher”; printf(“%s\n”,s); } 4.main() {int a=3,b=4; printf(“a=%d,b=%d\n”,++a,b++); } 5.main() {static int a[5],i; for(i=0;i<5;i++) a[i]=a[i]+i; for(i=0;i<5;i++) printf(“%d,”,a[i]); } 六、单选题(本题10分,每小题2分) 1.main() {int k=11; printf(“k=%d, k=%o, k=%x\n”,k,k,k); } A.k=11,k=12,k=11 B. k=11,k=13,k=13 C. k=11,k=013,k=0xb D. k=11,k=13,k=b 2.main() {int y=10; while(y--); printf(“y=%d\n”,y); } A.y=10 B.y=1 C.y=随机值 D.y= -1 3.main() {int a,b,*p1,*p2; p1=&a;p2=&b; *p1=100;*p2=200;c=*p1+*p2; printf(“%d\n”,c); } A.300 B.100+200 C.100 D.200 4.在下列程序中,当执行到gets(ss);语句时,若输入字符为”ABC”时,则该程序的输出结果是: main() {char ss[10]="12345"; strcat(ss,”6789”); gets(ss);printf("%s\n",ss); } A.ABC B.ABC9 C.123456ABC D.ABC456789 5.main() {char a[]="morning",t; int i,j=0; for(i=1;i<7;i++) if(a[j]<a[i]) j=i; t=a[j];a[j]=a[7];a[7]=t; puts(a); } A.mogninr B.mo C.morning D.mornin 七、编程题(10分,每题5分) 1.请将下列一组数据读入到S数组中,并从中找出最小的值并输出。 30,56,88,45,100,20 2.请将下列给出的字符串读入到ss数组中,并输出该字符串。 Student and Teacher 08年C语言 六、填空题(10分,每题1分) 1.C语言中,基本数据类型包括整型、浮点型和__________。 2.一个C程序是由___________组成的。 3.在abc、a_1、a1b2、auto四个变量中,不合法的是_________。 4.字符串"ab\\c\n\101"的占用内存的字节数为_________。 5.在运算符+、->、*=、&&中,其优先级最低的是________。 6.定义共用体类型使用关键字____________。 7.C语言中,break语句通常用在________语句和循环语句中。 8.表达式7*2/5+3.5+'b'值的类型是__________。 9.设有语句int a=5;执行语句printf("%d",++a);后,输出结果为_________。 10.执行下面程序段后,输出的结果为_________。 for(i=1;i<5;i++) printf("*"); 七、判断题(10分,每题1分) 1.C语言程序总是从源程序文件中的第一个函数开始执行。( ) 2.数组名代表数组所占存储区的首地址,其值不可以改变。( ) 3.elseif不属于C语言关键字(保留字)( ) 4.指针变量可以加减一个整数。( ) 5.宏替换不占用运行时间。( ) 6.C语言中转义字符以"\"开头。( ) 7.C语言规定,函数返回值的类型是由return语句中的表达式类型决定的。( ) 8.如果在一个函数中的复合语句中定义了一个变量,则该变量只在该复合语句中有效。( ) 9.C语言中的函数既可以递归定义,又可以嵌套定义。( ) 10.main函数可以有参数。( ) 八、程序分析题(12分,每题3分) 1.指出程序的错误并改正 #include <stdio.h> void main() {int a,b,max; scanf("%d,%d",&a,&b); if(a<b) max=a max=b; printf("max=%d",max); } 2.写出下面程序的运行结果: #include <stdio.h> void main() {int x[]={0,1,2,3,4,5,6,7,8,9}; int i,sum=0; for(i=0;i<10;i=i+2) sum=sum+x[i]; printf("%d",sum); } 3.写出程序的运行结果 #include <stdio.h> void main() {char s[]=”ABC”,*p; for(p=s;p<s+3;p++) printf(“%s\n”,p); } 4.写出下面程序的功能 void ss(char *s1,char *s2) {while(*s1!='\0') s1++; while(*s2!='\0') {*s1=*s2; s1++; s2++; } *s1='\0'; } 九、程序设计题(18分,每题9分) 1.从键盘上任意输入一个字符串,统计字符串中大小写英文字母出现的次数。 09年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函数返回值为________。 七、阅读程序题(15分,每题3分) 1.下面程序的运行结果是___________。 #include <stdio.h> 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 <stdio.h> #define SIZE 8 main() { char s[]=“GDBFHACE”; int i,j,t; for(i=0;i<SIZE;i++); { for(j=i+1;j<=SIZE;j++); if(s[i]>s[j]) {t=s[i]; s[i]=s[j]; s[j]=t; } } for(i=0;i<SIZE;i++) printf(“%c”,s[i]); } 3. 下面程序的运行结果是__________。 #include <stdio.h> 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=%d\n”,a,b,c,d); } 4. 下面程序的运行结果是_________。 #include <stdio.h> int fun(int x) { static y=2; y++; x+=y; return x; } main() { int k; k=fun(3); printf(“%d,%d\n”,k,fun(k)); } 5. 下面程序的运行结果是_________。 #include <stdio.h> 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 <stdio.h> main() { int m; for(m=100;m<=200;m++) if (___________); printf(“%d \t”,m); } 2.下面程序通过指向整型变量的指针将数组m[4][3]的内容按4行3列的格式输出,请输出printf()填入适当的参数,使之通过指针p将数组元素按要求输出。 #include <stdio.h> main() { int m[4][3]={{1,2,3},{4,5,6},{7,8,9},{10,11,12}}; int i,j,*p=m; for(i=0;i<4;i++) { for(j=0;j<3;j++) printf(“%4d”,_________); printf(“\n”); } } 3.下面程序能够完成交换数组a和数组b中的对应元素的功能。 #include <stdio.h> swap(int *p1,int *p2) { int temp; ___________; } main() { int a[5]={1,3,5,7,9}; int b[5]={2,4,6,8,10}; int i; for(i=0;i<5;i++) swap(&a[i],&b[i]); for(i=0;i<5;i++) printf(“a[%d]=%-4d”,i,a[i]); printf(“\n”); for(i=0;i<5;i++) printf(“b[%d]=%-4d”,i,b[i]); printf(“\n”); } 4.在某大学举行的演讲比赛中,有十个评委为参赛的选手打分,分数为0~100分。选手最后得分为:去掉一个最高分和一个最低分后其余八个分数的平均值。 #include <stdio.h> main() { int max,min,score,i; int sum=0; max=0;min=100; for(i=0;i<10;i++) { printf(“Input number %d=”,i++); scanf(“%d”,&score); sum+=score; if(max<score) max=score; if(min>score) min=score; printf(“\n”); } printf(“Canceled max score:%d\nCanceled min score:%d”,max,min); printf(“average score:%lf\n”,________________ ) } 5.把指针str所指的字符串按相反的顺序赋给rev[]。 #include <stdio.h> main() { char *str=“abcdefg”; char rev[10]; int i; printf(“\n”); for(i=0;i<7;i++) ______________; rev[i]=’\0’; printf(“%s\n”,rev); } 九、编程改错题(12分,每题3分) 1. (1)#include <stdio.h> (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; (18) } 错误的行是:_________ 改为:____________ 2.求 (1) #include <stdio.h> (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.2f\n",s1+s2+s3); (14) } 错误的行是:________ 改为:____________ 3.本程序能够在屏幕中央显示出如下图形。 (1) #include <stdio.h> (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 <stdio.h> (2) main() (3) { (4) int i; (5) FILE *fp; (6) char a[][8]={“Turbo C”, “BASIC”, “FORTRAN”, “COBOL”}; (7) if (fp=fopen(“myfile.txt”, “w”)==NULL) (8) { (9) printf(“can’t creat the file.\n ”); (10) exit(1); (11) } (12) for(i=0;i<4;i++) (13) { (14) fputs(a[i],fp); (15) fputs(“\n”,fp); (16) } (17) fclose(fp); (18) } 错误的行是:___________ 改为:_______________
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 考试专区 > 专升本考试

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服