收藏 分销(赏)

201203广西C语言试题4套.doc

上传人:a199****6536 文档编号:3066177 上传时间:2024-06-14 格式:DOC 页数:32 大小:122.50KB 下载积分:12 金币
下载 相关 举报
201203广西C语言试题4套.doc_第1页
第1页 / 共32页
201203广西C语言试题4套.doc_第2页
第2页 / 共32页


点击查看更多>>
资源描述
全国高校计算机联合考试(广西)二级C语言试题卷 2011年12月24日 闭卷考试 考试时间:120分钟 第一卷 本卷共70分,其中第1~26题每题2分,第27~32题每题3分。 1.main()函数的特征是 。 A.可独立运行的函数 B.必不可少的函数 C.最先执行的函数 D.具有前述三种特征的函数 2. 下面标识符中,非法的C语言标识符是 。 A. _char B.Char C.a#b D.alb 3.下面常量中,非法的C语言常量是 。 A.‘tt’ B.10L C.0.01 D.0x10 4.设int类型的数据长度为2个字节,则unsigned int类型数据的取值范围是 。 A.-32768~32767 B.0~255 C.0~65535 D.-256~256 5.若w、x、y均为int型变量,则执行下列语句后,y的值是 。 w=5;x=w++;y=x+w--; A.9 B.11 C.10 D.12 6.若之前有以下说明语句,则表达式c*x+z+y的结果类型是 。 char c; int x; float y, z; A.double B.int C.char D.float 7.若y为int型变量,则执行以下语句后,y的值是 。 y=8;y+=y-=y*y; A.64 B.-56 C.-112 D.-48 8.若m、a、b、c、d均为int型变量,则执行下列语句后的m值是 。 a=1;b=2;c=3;d=4; m=a>b?a:c<d?c:d; A.1 B.4 C. 2 D.3 9.若a、b为int型变量,则执行下列语句后的b值是 。 a=15;b=15; do { b-=a; a++; }while(b--<0); A.0 B.-15 C.-16 D.-1 10.若有以下语句,则下面选项 是正确的描述。 static char x[ ]=“china”; static char y[ ]={‘c’,‘h’,‘i’,‘n’‘a’}; A.x数组与y数组长度相同 B.x数组长度大于y数组长度 C.x数组长度小于y数组长度 D.x数组和y数组的赋值是非法的 11.while(!x)中的条件表达式(!x)与下面条件 等价。 A.==0 B.x==1 C.x==0||x==1 D.x!=0 12.若已定义m为int型变量,则 是对指针变量p的正确说明和初始化。 A.int p=&m; B.int *p=m; C.int *p=*m; D.int *p=&m; 13.若用数组名作为函数调用的实参,则实际上传送给行参的是 。 A.数组的全部元素值 B.数组的首地址 C.数组的第一个元素值 D.数组所含元素数目 14.若有以下语句,再执行语句j=!c&&i++;则变量i和j的值分别是 。 char c=’ x’; int i =1, j; A.1,1 B.2,0 C.2,1 D.1,0 15.若之前有如下宏定义,则执行系列语句:z=4*(N+y(5));后的结果是 。 #define N 2 #define y(n) ((N=1)﹡n A.z值为68 B.z值为180 C.z值为60 D.语句有错误 16.在C语言中函数返回值的类型缺省时,函数默认为 。 A.returu语句中的表达式类型 B.调用该函数的主函数类型 C.int类型 D.void类型 17.若有以下语句,则对数组元素正确引用的是 。 int a[ ]={2,4,6,8,10,12},*ptr;ptr=a; A.a B.a[6] C.*ptr D.ptr 18.有以下说明和p=&studl;语句,对结构变量中成员age的正确引用的是 。 struct student { int age; int sex; }stud1,*p; A.p->age B.student.age C.*p.age D.student.stud1.age 19.语句float *p();说明了 。 A.p是指向一维数组的指针变量 B.p是一函数名,该函数的返回值是指向float类型数据的指针 C.p是指向函数的指针,该函数返回值的类型是float D.p是指向float类型数据的指针变量 20.若要用fopen函数建一个新的二进制文件,该文件要即能读也能写,则文件方式字符串应该为 。 A.“ab+” B.“wb+” C.“rb+” D.“ab” 第二部分:简单程序 21.以下程序的输出结果是 。 main() { int n=4; while(n>0) {n--;printf(“%d”,n);} } A.2 0 B.3 2 1 C.3 2 1 0 D.2 1 0 22.下列程序运行后的输出结果是 。 main() { int i=1; while(i<=7) if(++i%3!=2) continue; else printf(“%d”,i); printf(“\n”); } A.158 B.26 C.125 D.258 23.两次运行下面的程序,如果从键盘是分别输入6和4,则输出结果分别是 。 main() { int x; scanf(“%d”,&x); if(x>5) printf(“%d”,++x); else printf(“%d”,x--); } A.7和4 B.6和3 C.7和3 D.6和4 24.运行以下程序的输出结果是 。 main( ) { int x=1,a=0 ,b=0; switch(x) { case 0:b++; case 1:a++; case 2:a++;b++; } printf(“a=%d, b=%d\n”,a,b); } A.a=1,b=1 B.a=2,b=1 C.a=1,b=0 D.a=2,b=2 25.以下程序的输出结果是 。 main( ) { char a[10]={‘1’,’2’,’3’,’4’,’5’,’6’,’7’,’8’,’9’,0},*p; int i=8; p=a+i; printf(“%s\n”,p-3); } A.123456789 B.6789 C.’6’ D.789 26.以下程序的输出结果是 。 main() { char s[]=“TODAY IS happy!”,*p=s; while(*p) { if(*p>=’A’&&*p<=’Z’)*p=*p-’A’+’a’; p++; } printf(“%\n”,s); } A.TODAY IS happy! B.TODAY IS HAPPY! C.today is happy! D.today is HAPPY! 27.运行下面的程序,其输出结果是 。 main() { char ch[3][4]={ “123”,”456”,”789”}; int i; for(i=0;i<3;i++) printf(“%s”,ch[i]); } A.123 B.1 C.123 D.123456789 4 456 7 789 28.下列程序运行后的输出结果是 。 main() { int b[3][3]={0,1,2,0,1,2,0,1,2},i,j,t=1; for(i=0;i<3;i++) for(j=i;j<=i;j++) t=t+b[i][b[j][j]]; printf(“%d\n”,t); } A. 4 B. 3 C. 1 D. 9 29.下列程序运行后的输出结果是 。 int a, b; void fun() { a=100;b=200; } main() { int a=5, b=7; fun(); printf(“%d%d\n”,a,b); } A.100200 B.57 C. 200100 D.75 30.系列程序运行后的输出结果是 。 main() { int i, n=0; for(i=2;i<5;i++) { do { if(i%3) continue; n++; }while(!i); n++; } printf(“n=%d\n”,n); } A. n=5 B. n=2 C.n=3 D. n=4 31.系列程序运行后的输出结果是 。 void main() { int m=4,n=2,k; k=fun(m,n); printf(“%d\n”,k); k=fun(m,n); printf(“%d\n”,k); } fun(int x,int y) { static int n=3,i=2; i+=n+1; n=i+x+y; return (n); } A. 12 B. 12 C. 12 D. 12 25 23 12 16 32.下列程序运行后的输出结果是 。 void sort(int a[ ],int n) { int i, j, t; for(i=0;i<n-1;i+=2) for(j=i+2;j<n;j+=2) if(a[i]<a[j]) { t=a[i];a[i]=a[j];a[j]=t;} } main() { int aa[10]={1,2,3,4,5,6,7,8,9,10},i; sort(aa,10); for(i=0;i<10;i++) printf(“%d,”,aa[i]); printf(“\n”); } A.1,2,3,4,5,6,7,8,9,10, B.10,9,8,7,6,5,4,3,2,1, C.9,2,7,4,5,6,3,8,1,10, D.1,10,3,8,5,6,7,4,9,2, 第二卷 说明:(1)第二卷均为程序填空题,在阅读和理解程序的基础上,在第二卷答题卡是编号对应的栏目中填入适当的字符、语句,以构成一个正确的C语言程序。 (2)每空栏3分,10个空栏共30分。 试题一:以下程序将两个数从小到大输出。 main() { float a,b, 1 ; temp scanf(“ 2 “,&a,&b); %f%f if(a>b) { temp=a; 3 ; a=b b=temp; } printf(“%f,%f” ,a,b); } 试题二:以下程序是打印出所有的”水仙花数”,所谓”水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个”水仙花数”,因为153=1×1×1+5×5×5+3×3×3。 main() { int i, j, k, n; printf(“’water flower’ number is:”); for(n=100; 4 ;n++) n<=999 { i=n/100; j= 5 ; n/10%10或n%100/10 k=n%10; if( 6 )printf(“%-5d”,n); n==i*i*i+j*j*j+k*k*k } printf(“\n”); } 试题三:以下程序通过写一函数求一个字符串的长度,在main函数中输入字符串,并输出其长度。 main() { int len; 7 ; char str[100] printf(“please input a string::\n”); scanf(“%s”,str); len= 8 ; length(str) printf(“the string has %d charcters.”,len); } length(char *p) { int n; n=0; while( 9 ) *p { 10 ; n++ p++; } return n; } C语言试题 (二)2010.6 第一卷(本卷第1~20题每题2分,第21~30题每题3分,共70分) 第一部分基础知识(20项,每项2分,共40分) 1.可以从循环体内跳出,继续执行该循环外语句的是__________。 A.break语句 B.return语句 C.continue语句 D.空语句 2.下列语句不具有赋值功能的是__________。 A.a*=b B.x=1 C.a+b D.a++ 3.下列标识符中不是合法标识符的是__________。 A.hot_do B.cat1 C._pri D.2ab 4.数学表达式ax2+bx+c所对应的C语言表达式为__________。 A.ax2+bx+c B.a*x2+b*x+c C.a*x*x+b*x+c D.a*x*2+b*x+c 5.若x为一个实数,那么输出x应该使用下面哪个语句__________。 A.printf (“x=“,x); B.printf (“x=%d”,x); C.printf (“x=%f”,x); D.printf (“x=%”,x); 6.设i和k都是int类型,则以下对循环语句 for (i=0,k=-1;k=1;i++,k++) { printf(“****\n”); } 说法正确的是__________。 A.循环结束条件不合法 B.循环体一次也不执行 C.循环体执行一次 D.该循环是无限循环 7.下面说法错误的是__________。 A. do…while{}语句至少执行一次循环 B. break语句可以跳出switch语句和循环语句 C. 每个if一定有一个else和它对应 D. 每个else一定有一个if和它对应 8.以下程序输出结果为 #include “stdio.h” main() { char c=‘c’; printf (“%c”,c+2); } 输出结果是__________。 A.有语法错误,不能通过编译 B. e C. 99 D.c 9.判断字符串a和b相等的正确表达式是__________。 A. if(a=b) B. if(strcpy(a,b)) C. if(strcmp(a,b)= =0) D. if(a= =b) 10.C语言程序中,函数返回值的类型是由__________决定。 A. return语句中的表达式类型 B.调用该函数的主调函数类型 C. 调用该函数的形参类型 D.在定义该函数时所指定的函数类型 11.下列叙述中不正确的是__________。 A. C程序的注释部分放在”/*” 和”*/”之间,”/” 和”*”之间不能有空格 B. 一个C源程序可由一个或多个函数组成 C. 一个可正确运行C语言程序必须有一个且只能有一个main函数 D. C程序编译时注释部分的错识将被发现. 12.为了用宏名PR表示常量printf,以下宏定义中符合C语言语法的是__________。 A.#define PR, printf B. define PR printf C. #define PR printf; D. #define PR printf 13.与y=a>b?a:b语句等价的程序段的是______________。 A. if (a>b) y=a; else y=b; B. if (a>b) y=b; else y=a; C. if (a>b) y=a; y=b; D. if (a>b) y=b; y=a; 14.一个 C语言程序总是从__________开始执行的。 A. 编译预处理 B. 输出语句 C. 主函数 D. 排在前面的语句 15.对于程序段: int *p,a=5; p=&a; 下列表达式中代表地址的是__________。 A. a, p, *&a B. &* a, &a, *p C. *p, *&p, &a D. &a, &*p, p 16.有说明”int n=2,*p=&n,*q=p”,则以下非法的赋值语句是__________。 A. p=n; B.*p=*q; C. n=*q; D.p=q; 17.运行以下程序段时编译出错,其原因是_____________。 char c1=‘a’,c2=‘123’; printf(“%c,%d\n”,c1,c2); A.字符串要用”123”表示 B.’123’只能赋值给字符数组 C. c2是字符变量,不能用 %d格式输出 D. ‘123’不是正确的字符常量,不能赋值给字符变量c2 18.以下程序段运行的结果是__________。 enum wd {a=1,b,c,d,e } wk=e; printf(“%d \n”,wk)); A. 4 B. 5 C.-1 D.e 19.设整型变量a为5,使b不为2的表达式是__________。 A.b=a/2 B.b=6-(--a) C.b=a%2 D.b=a>3?2:1 20.对于定义int a[3][5],下列描述中正确的数组元素引用语句是__________ A. a[2][3] B. a[3,2] C. a[1+2][2] D. a(3)(2) 第二部分简单程序(10项,每项3分,共30分) 21.下列程序执行后输出的结果是_____________。 main() { int x=6,y=10,z=15,m; z++; m=x*y+z; printf(“%d\n”, m); } A.75 B.76 C.31 D.32 22. 在执行下列程序时输出的结果是_____________。 main() { int x=4,y=7; x-=y; y+=x; printf(“%d %d”,x,y) ; } A. 4 7 B.-3 -3 C. -3 11 D.-3 4 23. 下列程序输出的结果是_____________。 main() { int n=1,sum=0; do { sum=sum+n; n=n+4; }while(n<1); printf(“%d\n”,sum); } A.0 B.1 C.5 D.4 24. 下列程序执行后输出结果是____________。 main() { int m=3; printf(“f(%d)=%d”,m,(m>=0?1:0)); } A. f(3)=1 B. f(3)=0 C. f(3)=3 D. f(1)=3 25. 下列程序执行后输出结果是_____________。 main() { int x=1,y=2,a=0,b=0; switch(x) { case 1: switch(y) { case 0:a++; case 1: b++; } break; case 2:a++;b++;break; } printf(“a=%d,b=%d\n”,a,b); } A. a=0,b=0 B. a=1,b=0 C. a=0,b= 1 D. a=1,b=1 26. 下列程序执行后输出结果是_____________。 main() { int i,n=1; for(i=3;i<5;i++) n++; printf(“%d”,n); } A.2 B.3 C. 4 D. 5 27下列程序执行后输出结果是_____________。 main( ) { int i,a [3]={0}; for(i=1;i<3;i++) { a [i]= a [i-1]*2+1; printf(“%d “, a [i]); } } A.0 1 B.0 2 C.1 2 D.1 3 28.以下程序执行后输出的结果是_____________。 main() { char s[]=“abcdefg”; s[5]=‘\0’; printf(“%s\n”, s); } A. abcd B. abcde C. abcdef D. abcdefg 29.以下程序执行后输出的结果是_____________。 main() { int a,b,x=45; a=b=0; if(!a) x--; if(b) x=30; else x=40; printf(“x=%d\n”,x); } A. x=0 B. x=30 C. x=40 D. x=44 30.以下程序执行后输出的结果是_____________。 main() { int a,m; for(m=10;m<25;m++) { a=m%10; if(a= =5 && m%3= =0) { printf(“%d”, m); } } } A.5 B.10 C.15 D.25 第二卷 (本卷10项,每项3分,共30分) 第二卷均为填空题,在阅读和原题程序的基础上,在第二卷答题卡上编号对应的栏目中填入适当的字符、语句,以构成一个正确的C语言程序。 1.以下程序输出的结果是 1 23 int fund (int i) { printf(“%d”, i); return ++i; } main() { int i=2; printf(“%d”, fund ( i)); } 2. 以下程序输出的结果是 2 9 main() { int x=5; while(x<10) { x++; if (x%4!=1) continue; else printf(“ %d \t”,x); } } 3. 以下程序输出的结果是: 3 abcd int isnumber(char c){ return((c>='0'&&c<='9')?1:0); } main() { char a[]="a1b23c45d6",*p=a; int k=0; while(*p!='\0') { if (isnumber(*p)==0) a[k++]=*p; p++; } a[k]='\0'; printf("%s\n",a); } 4.以下程序是计算S=1-2+3-4...+99-100并输出结果,填空完成程序。 int fun (int n) { int s=0,f=1,i; for(i=1;i<=n;i++) { 4 ; s+=f*i f=-f; } return 5 ; s } main () { int fun (int n); printf("S=1-2+3-4...+99-100=%d\n", 6 ); fun(100) } 5.以下程序的功能是输入一个字符串S,将所有空格删除后再输出。请填空完成程序。 main () { char s[80]; int x,y; printf("please enter a string to s:"); gets(s); for(x=0,y=0; 7 ;x++) s[x]!='\0' { if (s[x]!=' ') { 8 ; s[y]=s[x] y++; } } s[y]= 9 ; '\0' printf( 10 ); "%s",s } C语言试题 (三)2009.6 第一卷 本卷共70分,其中第1~26题每题2分,第27~32题每题3分。 第一部分:基础知识 1.对于声明int a[10],*p;,下面选项中合的赋值语句是 __________。 A.p=100; B.p=a[6]; C.p=a[3]+3; D.p=a+2 2. 以下叙述正确的是___________。 A.C语言程序中,main函数必须位于程序的最前面 B.C语言程序中大、小写字母是有区别的 C.C语言程序的每行只能写一条语句 D.编译C程序时,可以发现注释行中的错误 3. 若x、i、j和k都是int型变量,则执行下列语句后,x的值为____________。 x=(i=4,j=16,k=32); A.4 B.16 C.32 D.52 4. 对于程序段int *p,a=5;p=&a; ,下列各选项中全部表示地址的是___________。 A.a,p,*&a B.*p,*p,&a C.&*a,&a,*p D.&a,&*p,p 5. 对于定义:int a[3][5],能正确引用数组元素的语句是_________。 A.a[3,2] B.a[2][3] C.a(3)(2) D.a[1+2][2] 6. 判断char型变量ch是否为大写字母的正确表达式是___________。 A.’A’<=ch<=‘Z’ B.(ch>=‘A’)OR(ch<=‘Z’) C. (ch>=‘A’)&&(ch<=‘Z’) D.(‘A’<=ch) AND(‘Z’>=ch) 7. 对于声明int i,j=2,*p=&j;,能完成i=j功能的语句是_________。 A.i=**p; B.i=*p; C.i=&j; D.*p=*&j; 8. 若希望当int a;a的值为奇数时,表达式的值为”真”,a的值为偶数时,表达式的值为”假”.则以下不能满足要求的表达式是__________。 A.a % 2 = = 1 B.!(a % 2 = = 0) C.a%2 D.!(a % 2) 9. 对于下面的定义:struct str {int x;float y;char z[6];} sample;下面的各项中,正确的赋值语句是___________。 A.sample.z=abcd; B.z=“abcd”; C.strcpy(sample.z,”abcd”); D.strcmp(sample.z,”abcd”) 10. 假设int a=2;float b=3;double c=3.14;则表达式 a*b+c的类型为__________。 A.float B.char C.double D.int 11. 正确判断字符串a和b相等的表达式为_____________. A.a == b B. a=b C.strcpy(a,b) D.strcmp(a,b) == 0 12. 若x[][4]=
展开阅读全文

开通  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 

客服