




已阅读5页,还剩18页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第五届全国ITAT教育工程就业技能大赛预赛试题C语言程序设计一、单选题(共计60题)(1) 在下述程序中,if (ij) 语句共执行的次数是( )。main() int i=0,j=14,k=2,s=0; for(;) i+= k ; if(ij) printf(“%d”,s); break ; s+=i ; A、6B、9C、7D、12(2) 若要用fopen函数打开一个二进制文件,该文件要既能读也能写,当文件不存在时新建文件,则文件打开方式应是( )。A、ab+B、rb+C、wb+D、ab(3) 下列程序的输出结果是( )。struct student int a, b, c; ; main() struct student stu2=2,3,4,5,6,7; int t; t=stu0.a+stu1.b%stu0.c; printf(%d n,t); A、0B、1C、4D、5(4) 对于浮点型变量f,能实现对f中的值在小数点后第四位进行四舍五入的表达式是( )。CA、f=(f*1000+0.5)/1000.0B、f=(f*1000+0.5)/1000C、f=(int)(f*1000+0.5)/1000.0D、f=(f/1000+0.5)*1000(5) 现已定义整型变量int i=1; 执行循环语句“while(i+5);”后,i的值为( )。A、1B、5C、6D、以上三个答案均不正确(6) 下列程序的输出结果是( )。struct LH int n;struct LH *m;p4;main() int i;for(i=0;in,p2.m-n);A、0,1B、0,2C、0,0D、程序出错(7) 下列程序的运行结果是( )。#include stdio.hint f(int a) switch (a) case 0:return 0; case 1:case 2:return 1; return(f(a-2)+f(a-3);main() int b;b=f(9);printf(“%dn”,b);A、10B、7C、8D、9(8) 以下程序的输出结果是( )。int f(int b,int m,int n)int i,s=1; for(i=m;in;i+) bi=bi-1+bi+1; s+=bi; return s; main() int x,a=1,2,3,4,5,6,7,8,9,10; x=f(a,3,5); printf(%dn,x); A、23B、26C、42D、35(9) 以下程序运行后,输出结果是( )。main() char ch34=123,456,78,*p3;int i; for(i=0;i3;i+) pi=chi; for(i=0;i2C、a&(b+c+d+e)0; k) s += k; return s; void main( ) int k; k=f(2); printf(%d, %d), k, f(k); A、(3, 3)B、(1, 1)C、(3, 6)D、(6, 12)(12) 若有定义:int a,b;char x,y;并有以下输入数据: 12 13 AaBb(回车)则能给a赋整数12,给b赋整数13,给x赋字符a,给y赋字符b的正确程序段是( )。A、scanf(“%d”,&a); scanf(“%d”,&b); x=getchar();y=getchar();B、scanf(“%d%d %c %c”, &a, &b,&x,&y);C、scanf(“%d %d %c %c”, &a,&b,&x,&x,&y,&y);D、scanf(“%d %d %c%c%c%c”,&a,&b,&x,&x,&y,&y);(13) 以下对结构体成员的运算结果是( )。#include main()struct st int x; int y; cnum2=1,3,2,7; printf(%dn,cnum0.y/cnum0.x*cnum1.x);A、0B、1C、3D、6(14) 函数f定义如下,执行语句“m=f(5);”后,m的值应为( )。 int f(int k) if(k=0|k=1) return 1; else return f(k-1)+f(k-2); A、3B、8C、5D、13(15) 若有以下定义:char s10=a,b,c,0, 2,x32 ,0,123;执行语句printf(“%d”,strlen(s);的结果是( )。A、3B、6C、8D、9注释;strlen函数遇到0时终止计算 (16) 若i为整型变量,则以下循环执行的次数是( )。for(i=0;i=5;i+) printf(%d,i+);A、5次B、2次C、3次D、6次注释:好题目!(17) 执行以下程序段后的输出结果是( )。 int x = 3; int m, n; n = (+x) + (+x); m = (x) + (x); printf(%d %dn, m, n);A、10 6B、9 9C、10 10D、10 8括号的优先级最高,所以n = (+x)+ (+x);先计算两个括号里面的内容。前置+,是先加后用,n = (+x)+ x;此时x=4,然后n = x+ x;此时x=5,所以n=10同理m = (x-) +(x-); 后置-,先用再减,m=10,自减后x=3。(18) 设有定义:int a22=1,2,3,4,(*p)2;,则在语句p=a;p+;后,*p的值为( )。A、2B、3C、4D、以上都不对int (*p) 2 /定义指向一维数组的指针;p=a /将首行的地址赋给p. 此时,*p的值为二维数组a的首行的地址,*p即为首行第一个元素的值,即1;p+ /此时p指向二维数组a的第二行,*p的值为第二行的地址,*p为第二行第一个元素的值,即3.(19) 以下关于循环的程序的输出结果是( )。#include stdio.hvoid main() int k=4,n=0; for(;nk;) n+; if(n%3!=0) continue; k; printf(%d %d,k,n);A、1 1B、2 2C、3 3D、4 4(20) 下列关于字符串操作的输出结果是( )。#include stdio.h#include string.hvoid main() char p120=abcd,p220=ABCD; char str50=xyz; strcpy(str+2,strcat(p1+2,p2+1); printf(%sn,str);A、xyabcABB、abcABzC、AbabczD、xycdBCD(21) 下列选项中属于正确的switch语句的是( )。A、swicth(a) case a:printf(“An”); case b:printf(“Bn”); B、switch(1.0) case 1.0 :printf(“An”); case 2.0 :printf(“Bn”);C、switch(int)(x+2.5) case 1 :printf(“An”); case 1+2 :printf(“Bn”);D、switch(“a”); case “a” :printf(“An”); case “b” :printf(“Bn”);(22) 以下程序的运行结果为( )。#include stdio.hvoid main()int y=2,a=1;while(y!=-1)doa*=y;a+;while(y);printf(%d,%dn,a,y);A、1,-2B、2,1C、1,0D、2,-1(23) C语言的输入与输出操作是由( )完成的。A、输入语句B、输出语句C、输入与输出函数D、输入与输出语句(24) 若有以下程序段 int a =4,0,2,3,1,i,j,t;for(i=1;i=0&taj) aj+1=aj;j; aj+1=t; 则该程序段的功能是( )。A、对数组a进行插入排序(升序)B、对数组a进行插入排序(降序)C、对数组a进行选择排序(升序)D、对数组a进行选择排序(降序)(25) 执行下列程序中的输出语句后,x的值是( )。main() int x ; printf(“%dn”,(x=4*5,x*2,x+20);A、20B、40C、60D、80(26) 下列程序段的输出结果是( )。int c =1, 7, 12;int *k=c+1;printf(%d,*k+);A、2B、7C、8D、12(27) 下列程序的运行结果是( )。main()int a=4,y; y=fn(a,+a); printf(“%d”,y); int fn(x,c) int b; if(xc)b=1; else if(x=c)b=0; else b=-1 ; return(b); A、4B、-1C、1D、0(28) 有如下程序:int x=-20; printf(%dn,x);,其输出结果将是( )。A、19B、20C、21D、-1原码(正负数原码相同)、反码(负数反码取反),补码(反码+1),正数原反补相同(29) 对于类型相同的指针变量,不能进行的运算是( )。A、+B、-C、=D、=(30) 已知:union u_type int i; char ch; float a;temp;现在windows环境下,执行temp.i=266;printf(%d,temp.ch)的结果是( )。A、266B、256C、10D、1十进制的int类型的266就是2进制的00000000, 00000000, 00000001, 00001010将它转换为char的话,就只取上面的红色部分了,也就是10266表示2进制100001010;他们是从右边开始的(低位)因此temp.ch是一个字节;就是8位因此对齐,发现最左边的1被丢弃,剩下为00001010;为10(31) 以下程序的运行结果是( )。#include stdiohmain() int a=1,2,3,4,5,6,7,8,9,10,11,12; int *p=a+5,*q=NULL; q=p+5; printf(%d %dn,*p,*q);A、运行后报错B、6 11C、6 12D、5 5(32) 以下程序的输出结果是()。 main() int a=0,b=1,c=0,d=20; if (a) d=d-10; else if (!b) if (!c) d=15; else d=25; printf(d=%dn,d); A、d=10B、d=15C、d=20D、d=25(33) 下面四组字符串中,都可以用作C语言程序标识符的是( )。A、 print _maf mx_2d aMb6B、 Iam scanf mx_ MBC、 sign 3mf a.f A&BD、 if ty_pe x1# 5XY(34) 下列程序的输出结果是( )。 int f() static int i=0; int s=1; s+=i;i+; return s; main() int i , a=0; for(i=0;i6;i+)a+=f(); printf(“%dn”,a);A、21B、24C、25D、15(35) 设有定义:#define STR 12345;,则以下叙述正确的是( )。A、宏名STR代替的是数值常量12345B、宏定义以分号结束,编译时会产生错误信息C、宏名STR代替的是字符串12345D、宏名STR代替的是字符串常量12345(36) 以下程序运行后,如果从键盘上输入ABCDE,则输出结果为( )。 #include stdio.h #include string.h func (char str ) int num =0; while (*(str +num )!=0)num +; return(num ); main() char str 10,*p=str ; gets(p); printf(%dn,func(p); A、8B、7C、6D、5(37) 下列程序的输出结果是( )。struct st int x;int *y;*p; int dt4=10,20,30,40; struct st aa4=50,&dt0,60,&dt1,70,&dt2,80,&dt3;main() p=aa; printf(“%d ”,+(*p-y); printf(“%d ”,(+p)-x); printf(“%d ”,+p-x);A、20 20 10B、21 60 50C、11 60 61D、31 70 60(38) 以下函数的功能是( )。char *fun(char *str1,char*str2) while(*str1)&(*str2+=*str1+); return str2; A、求字符串的长度B、比较两个字符串的大小C、将字符串str1复制到字符串str2中D、将字符串str1接续到字符串str2中(39) 以下程序的输出结果是( )。#include void func(char *m) +*m; printf(%sn,*m);void main() static char *a=first,second,three; char *n; n=a; func(n);A、firstB、irstC、secondD、其他(40) 以下语句的输出结果为( )。 for(k=0;k5;+k) if(k=3) continue;printf(%d,k);A、012B、0124C、01234D、没有输出结果(41) 下面的程序对输入的每一个数字出现的次数进行计数,下划线处应填入的正确语句为( )。#include stdio.hmain()int i,ch, n10; for(i=0;i=0 & ch=9) _; for(i=0;i10;+i) printf(数字%d出现的次数是:%dn,i,ni);A、nch-0+B、nch+C、i+D、ni+(42) 以下程序的输出结果是( )。#include stdio.hint *fun() int a4,k; for(k=0;k4;k+)ak=k; return(a);void main() int *p,j; p=NULL; p=fun(); for(j=0;jsex);D、scanf(%d,p-age);(44) 与 y=(x0?1:x0)y=1; else if(x0)y=1; else if(x0)y=1; else if(x=0)y=0; else y=-1;D、y=0; if(x=0) if(x0)y=1; else y=-1;(45) 下列描述中不正确的是( )。A、字符型数组中可能存放字符串B、可以对字符型数组进行整体输入、输出C、可以对整型数组进行整体输入、输出D、不能在赋值语句中通过赋值运算符“=”对字符型数组进行整体赋值(46) 下面程序运行后,关于a、b、c的值应输出为( )。#include stdio.hmain() int a=1, b=2, c=2,t; while (abc)t=a;a=b;b=t;c; printf(%d,%d,%d,a,b,c);A、1,2,0B、2,1,0C、1,2,1D、2,1,1好题啊!首先我要知道abc先算ab 然后再把ab的值在和c比较!第一次循环ab成立为1,然后1c也成立,循环的条件成立 那么执行循环体后a=2,b=1,c=1第二次循环ab成立为0,然后1c也成立,循环的条件成立 那么执行循环体后a=1,b=2,c=0;第三次循环ab成立为1,然后1c不成立,循环的条件不成立,退出循环,输出 1 2 0 (47) 在16位 PC机环境下,下列程序的输出结果是( )。struct tt int n1;char n2;float n3; union uuint u13;char u23;su;main()printf(“%dn”,sizeof(struct tt);A、11B、12C、13D、9116位pc机整形为2,浮点型4,字符型1(48) 若有如下程序:void s(char *m,int n) *m=*m+3;n=n+3;printf(%c,%c,*m,n);void main() char p=b,q=B;s(&q,p);printf(%c,%cn,p,q);则程序运行后的输出结果是( )。A、E,e,b,EB、e,E,b,FC、E,e,e,ED、e,E,b,E(49) 以下程序的输出结果是( )。#include int main() char str100=ABCDEFG, *p=str; int i; for(i = 0; *p != 0; p+,i+); printf(%dn,i); return 0;A、7B、8C、99D、100(50) 某C编译系统规定,int型数组占2个字节,则定义以下语句后,sizeof(aa)=( )。struct long num;char name20;union float x;short y;xy;aa;A、32B、26C、30D、28(51) 语句:printf(“%d”,!0);的输出结果是( )。A、1B、0C、有语法错误 ,不能执行D、!0(52) 函数f定义如下,执行语句“sum=f(4)+f(2);”后,sum的值应为( )。 int f(int m) static int i=0; int s=0; for(;i=m;i+) s+=i; return s; A、13B、16C、10D、8(53) fwrite函数的一般调用格式是( )。A、fwrite(buffer,count,size,fp);B、fwrite(fp,count,size,buffer);C、fwrite(fp,size,count,buffer);D、fwrite(buffer,size,count,fp);(54) 有以下程序段main() int i=1,sum=0,n; scanf(%d,&n);do i+=2; sum+=i ;while(i!=n);printf(%d,sum);若使程序的输出值为15,则应该从键盘输入的n的值是( )。A、1B、3C、5D、7(55) 下列选项可作为C语言赋值语句的是( )。A、a=1;b=2;B、a=b=6C、iD、y=int(x);(56) 已知有以下的说明, int a=8,1,2,5,0,4,7,6,3,9; 那么a*(a+a3)的值为( )。A、5B、0C、4D、7(57) 已知 enum namezhao=1,qian,sun,liman;执行下述程序段后的输出结果是( )。man=0;switch(man) case 0: printf(Peoplen);break; case 1: printf(Mann);break; case 2: printf(Womann);break; default: printf(Errorn);break;A、PeopleB、ManC、WomanD、Error(58) 以下能正确计算12310的程序段是( )A、do i = 1;s = 1; s = s * i; i + +; while (i = 10); B、do i = 1;s = 0; s = s * i; i + +; while (i = 10);C、i = 1;s = 1; do s = s * i; i + +; while (i = 10);D、i = 1;s = 0; do s = s * i; i + +; while (i A);A、0B、1C、2D、3(60) 若指针p已正确定义,要使p指向两个连续的整型动态存储单元,下列语句正确的是( )。A、p=2*(int*)malloc(sizeof(int);B、p=(int*)malloc(2*sizeof(int);C、p=(int*)malloc(2*2);D、p=(int*)malloc(2,sizeof(int);二、多选题(1) 以下叙述中正确的有( )。A、在程序的一行上可以出现多个有效的预处理命令行B、宏定义不是C语句,不必在行末加分号C、宏替换不占用运行时间,只占用编译时间D、在以下定义中C R是称为“宏名”的标识符 #define C R 045(2) 要求函数的功能是在一维数组a中查找x值。若找到,则返回所在的下标值;否则,返回0。设数据放在数组元素的a1到an中。在以下给出的函数中,不能正确执行此功能的有( )。ABDA、funa(int *a, int n, int x) *a = x; while(an != x) n; return n; B、funb(int *a, int n, int x) int k; for(k = 1; k = n; k+) if(ak = x) return k; return 0; C、func(int a, int n, int x) int *k; a0 = x; k = a+n; while(*k != x) k; return k - n; D、fund(int a, int n, int x) int k = 0; do k+; while(k n+1)&(ak!=x); if(k 0)A、k%2B、k%2=0C、(k%2)!=0D、k%2=1(6) 设有以下语句struct st int n; struct st *next; ;static struct st a3=5,&a1,6,&a2,7,*p=&a0;若要使printf(%dn,_)输出值为6,则下划线处表达式可以为( )。A、p-n+B、+p-nC、(+p)-nD、p-next-n(7) 下列说法不正确的有( )。A、带参数的宏定义中的参数是没有类型的B、宏展开将占用程序的运行时间C、宏定义命令是C语言中的一种特殊语句D、使用include命令包含的头文件必须以.h为后缀(8) 下列有关函数调用的说法正确的有( )。A、若用值传递方式,则形式参数不予分配内存B、实际参数和形式参数不可以同名C、主调函数和被调用函数可以不在同一个文件中D、函数间传送数据可以使用外部全局变量(9) 若变量已正确定义,以下能正确计算1*2*3*4*5的程序段有( )。A、i=1;s=1; do s=s*i;i+; while(i5);B、i=0;s=0; do i+; s=s*i; while(i5);C、i=1;s=1; do s=s*i;i+; while(i6);D、i=0;s=1; do i+; s=s*i; while(i5);(10) 设有定义语句: int x6=2,4,6,8,5,7,*p=x,i;要求依次输出x数组中6个元素中的值,下列选项中能完成此操作的语句有( )。A、for(i=0;i6;i+)printf(“%2d”,*(p+);B、for(i=0;i6;i+)printf(“%2d”,*(p+i);C、for(i=0;i6;i+)printf(“%2d”,*p+);D、for(i=0;i2?6:5C、x=9-(y)-(y)D、x=y*4.8/2-1(12) 下列关于指针定义的描述正确的有( )。A、指针变量是一种变量,该变量是用来存放某个变量的地址值的B、指针变量的类型与它所指向的变量类型一致C、指针变量的命名规则与标识符相同D、在定义指针时,”*”号表示指针变量的指向(13) 以下对结构体变量stu1中成员age的引用正确的有( )。struct studentint age; int num;stu1,*p; p=&stu1;A、stu1.ageB、student.ageC、p-ageD、(*p).age(14) 设有结构体类型:typedef struct str int no; char name20;STR;另有变量定
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 天津医保考试题目及答案
- 支付系统应急响应-洞察及研究
- 2025年公需课专业技术人员的职业发展与时间管理考试题(含答案)
- 2025年高压低压电工证考试题库附答案(含各题型)
- 2025年高级经济师《工商管理》试题及答案
- 2025年高级会计师资格实战演练真题解析与答案
- 旅营体制考试题及答案
- 生活类口语试题及答案
- 运动健康饮食试题及答案
- 财务内部群管理办法
- 泛海煤制60万吨甲醇项目可行性研究报告
- 《复杂世界简单规律》课件
- 性别平等培训讲义
- 大于号小于号等于号田字格描红
- 普通心理学第六版PPT完整全套教学课件
- DISC沟通风格测试
- 大学体育:轮滑教案
- DB31-T 1380-2022 社会消防技术服务机构质量管理要求
- 常见天气系统课件
- 不良资产项目尽调指引
- 深基坑钢板桩支护方案
评论
0/150
提交评论