C语言闯关题
更新时间:2024-01-18 02:24:01 阅读量: 教育文库 文档下载
本帖由 火雨 于 2016-12-16 10:17 编辑
闯关题1
1.
十六进制数FF转换成十进制数是( )。 A:255 B:256 C:127 D:128 2.
在计算机中,字节的英文名字是( )。 A:bit B:byte C:bou D:Baud 3.
下列字符中,ASCII码值最小的是( )。 A:M B:H C:y D:b 4.
已知英文字母a的ASCII代码值是十六进制61H,那么字母d的ASCII代码值是( )。 A:2H B:54H C:24H D:64H 5.
在C语言中,字符型数据所占的内存空间是( ) A: 2个字节 B: 4字节 C: 1字节 D:由用户自定义 6.
若有以下类型说明语句:char a;int b; float c; double d; 则表达式a*b+d-c的结果类型为( ) A: float B: char
C: int D: double 7.
设a,b和c都是int型变量,且a=3,b=4,c=5,则下面表达式中,值为0的表达式是( ) A: ’a’&&’b’ B: a<=b
C: a||b+c&&b-c D: !((a 下面( )表达式的值为4. A: 11/3 B: 11.0/3 C: (float)11/3 D: (int)(11.0/3+0.5) 9. 有:int w=7, x=12, y=3, m; 执行下面语句后m的值是( ) m=(w>x)?w:x; m=(m>y)?m:y; A: 12 B: 0 C: 3 D: 1 10. 设整型变量 a=2,则执行下列语句后,浮点型变量b的值不为0.5的是( ) A: b=1.0/a B: b=(float)(1/A: C: b=1/(float)a D: b=1/(a*1.0) 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. 在下面的条件语句中(其中s1和s2表示是C语言的语句),只有一个在功能上与其它三个语句不等价,它是( )。 A: if (A: s1 ; else s2; B: if (a= =0) s2; else s1; C: if (a!=0) s1; else s2; D: if (a= =0) s1; else s2; 13. 若k是int型变量,且有下面的程序段: int k; k= -3; if (k<=0) printf(“####”); else printf(“&&&&”); 上面程序段的输出结果是( ) A: #### B: &&&& C: ####&&&& D: 有语法错误,无输出结果 14. C语言中用( )表示逻辑“真”。 A: true B: 整数值1 C: 非零整数值 D: false 15. 若int i=10; 执行下列程序后,变量i的正确结果是( )。 switch ( i ) { case 9: i+=1; case 10: i+=1; case 11: i+=1; default : i+=1; } A: 13 B: 12 C: 11 D: 10 16. 在C语言中,下列说法中正确的是( )。 A: do-while语句构成的循环不能用其它语句构成的循环来代替。 B: do-while语句构成的循环只能用break语句退出。 C: do-while语句构成的循环在while后的表达式非零时结束循环。 D: do-while语句构成的循环,在while后的表达式为零时结束循环。 17. 对于break语句和continue语句的说法错误的是() A: break语句不能用于循环语句和switch语句之外的任何其他语句中。 B: break和continue也可以用于if语句中 C: continue语句只结束本次循环,而不是终止整个循环的执行。 D: break语句是结束整个循环过程,不再判断执行循环的条件是否成立。 18. 下列循环语句中有语法错误的是( ) A: while(x=y) 5; B: while(0) ; C: do 2;while(x= =B: ; D: do x++ while(x= =10); 19. 对以下程序段的叙述正确的是( ) int x=1; do { x= -1*x; } while(!x) A: 是死循环 B: 循环执行一次 C: 循环执行二次 D: 有语法错误 20. 设x和y均为int型变量,则执行以下的循环后,y的值为()。 for(y=1,x=1;y<=50;y++) { if(x>=0) break; if(x%2==1) {x+=5;continue;} x-=3; } A: 2 B: 4 C: 6 D: 1 本帖最后由 火雨 于 2016-12-16 10:17 编辑 闯关题2 数据类型,变量表达式,判断,循环 1. 十六进制数FF转换成十进制数是( )。 A:255 B:256 C:127 D:128 2. 在计算机中,字节的英文名字是( )。 A:bit B:byte C:bou D:Baud 3. 下列字符中,ASCII码值最小的是( )。 A:M B:H C:y D:b 4. 已知英文字母a的ASCII代码值是十六进制61H,那么字母d的ASCII代码值是( )。 A:2H B:54H C:24H D:64H 5. 在C语言中,字符型数据所占的内存空间是( ) A: 2个字节 B: 4字节 C: 1字节 D:由用户自定义 6. 若有以下类型说明语句:char a;int b; float c; double d; 则表达式a*b+d-c的结果类型为( ) A: float B: char C: int D: double 7. 设a,b和c都是int型变量,且a=3,b=4,c=5,则下面表达式中,值为0的表达式是( ) A: ’a’&&’b’ B: a<=b C: a||b+c&&b-c D: !((a 8. 下面( )表达式的值为4. A: 11/3 B: 11.0/3 C: (float)11/3 D: (int)(11.0/3+0.5) 9. 有:int w=7, x=12, y=3, m; 执行下面语句后m的值是( ) m=(w>x)?w:x; m=(m>y)?m:y; A: 12 B: 0 C: 3 D: 1 10. 设整型变量 a=2,则执行下列语句后,浮点型变量b的值不为0.5的是( ) A: b=1.0/a B: b=(float)(1/A: C: b=1/(float)a D: b=1/(a*1.0) 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. 在下面的条件语句中(其中s1和s2表示是C语言的语句),只有一个在功能上与其它三个语句不等价,它是( )。 A: if (A: s1 ; else s2; B: if (a= =0) s2; else s1; C: if (a!=0) s1; else s2; D: if (a= =0) s1; else s2; 13. 若k是int型变量,且有下面的程序段: int k; k= -3; if (k<=0) printf(“####”); else printf(“&&&&”); 上面程序段的输出结果是( ) A: #### B: &&&& C: ####&&&& D: 有语法错误,无输出结果 14. C语言中用( )表示逻辑“真”。 A: true B: 整数值1 C: 非零整数值 D: false 15. 若int i=10; 执行下列程序后,变量i的正确结果是( )。 switch ( i ) { case 9: i+=1; case 10: i+=1; case 11: i+=1; default : i+=1; } A: 13 B: 12 C: 11 D: 10 16. 在C语言中,下列说法中正确的是( )。 A: do-while语句构成的循环不能用其它语句构成的循环来代替。 B: do-while语句构成的循环只能用break语句退出。 C: do-while语句构成的循环在while后的表达式非零时结束循环。 D: do-while语句构成的循环,在while后的表达式为零时结束循环。 17. 对于break语句和continue语句的说法错误的是() A: break语句不能用于循环语句和switch语句之外的任何其他语句中。 B: break和continue也可以用于if语句中 C: continue语句只结束本次循环,而不是终止整个循环的执行。 D: break语句是结束整个循环过程,不再判断执行循环的条件是否成立。 18. 下列循环语句中有语法错误的是( ) A: while(x=y) 5; B: while(0) ; C: do 2;while(x= =B: ; D: do x++ while(x= =10); 19. 对以下程序段的叙述正确的是( ) int x=1; do { x= -1*x; } while(!x) A: 是死循环 B: 循环执行一次 C: 循环执行二次 D: 有语法错误 20. 设x和y均为int型变量,则执行以下的循环后,y的值为()。 for(y=1,x=1;y<=50;y++) { if(x>=0) break; if(x%2==1) {x+=5;continue;} x-=3; } A: 2 B: 4 C: 6 D: 1 函数的声明定义,实参形参, 变量作用域 1. C程序中函数返回值的类型是由( )决定的. A)函数定义时指定的函数类型 B) 函数中使用的最后一个变量的类型 C)调用函数时临时确定 D) 调用该函数的主调函数类型 2. C语言规定,简单变量做实参时,它和对应形参之间的数据传递方式为 ( ) A. 由系统选择 B. 单向值传递 C. 由用户指定传递方式 闯关题3 D. 地址传递 3. C语言中对函数的描述正确的是( ) . A)可以嵌套调用,不可以递归调用 B)可以嵌套定义 C)嵌套调用,递归调用均可 D)不可以嵌套调用 4. 有一函数的定义如:void fun(char *s){……},则不正确的函数调用是( )。 A.main() {char a[20]=”abcdefgh”; fun(a); …… } B.main() { char a[20]=”abcdefgh”; fun(&a[0]); …… } C. main() { char a[20]=”abcdefgh”; char *p=a;fun(p); …… } D. main() {char a[20]=”abcdefgh”; fun(a[]); …… } 5. 若在C语言中未说明函数的类型,则系统默认该函数的数据类型是( ) A)float B)long C)int D)double 6.以下关于函数叙述中,错误的是( )。 A)函数未被调用时,系统将不为形参分配内存单元 B)实参与形参的个数应相等,且实参与形参的类型必须对应一致 C)当形参是变量时,实参可以是常量、变量或表达式 D)形参可以是常量、变量或表达式 7. C程序中各函数之间可以通过多种方式传递数据,下列不能用于实现数据传递的方式是( ) 。 A)参数的“形实”结合 B)函数返回值 C)全局变量 D)同名的局部变量 8. 若函数调用时参数为基本数据类型的变量,以下叙述正确的是( ) 。 A)实参与其对应的形参共占存储单元 B)只有当实参与其对应的形参同名时才共占存储单元 C)实参与对应的形参分别占用不同的存储单元 D)实参将数据传递给形参后,立即释放原先占用的存储单元 9. 函数调用时,当实参和形参都是简单变量时,他们之间数据传递的过程是( ) 。 A)实参将其地址传递给形参,并释放原先占用的存储单元 B)实参将其地址传递给形参,调用结束时形参再将其地址回传给实参 C)实参将其值传递给形参,调用结束时形参再将其值回传给实参 D)实参将其值传递给形参,调用结束时形参并不将其值回传给实参 10. 若函数调用时的实参为变量时,以下关于函数形参和实参的叙述中正确的是( ) 。 A)函数的实参和其对应的形参共占同一存储单元 B)形参只是形式上的存在,不占用具体存储单元 C)同名的实参和形参占同一存储单元 D)函数的形参和实参分别占用不同的存储单元 11. 若用数组名作为函数调用的实参,则传递给形参的是 ( ) 。 A) 数组的首地址 B) 数组的第一个元素的值 C) 数组中全部元素的值 D) 数组元素的个数 12. 若函数调用时,用数组名作为函数的参数,以下叙述中正确的是( ) 。 A)实参与其对应的形参共用同一段存储空间 B)实参与其对应的形参占用相同的存储空间 C)实参将其地址传递给形参,同时形参也会将该地址传递给实参 D)实参将其地址传递给形参,等同实现了参数之间的双向值的传递 13. 如果一个函数位于C程序文件的上部,在该函数体内说明语句后的复合语句中定义了一个变量,则该变量( ) 。 A)为全局变量,在本程序文件范围内有效 B)为局部变量,只在该函数内有效 C)为局部变量,只在该复合语句中有效 D)定义无效,为非法变量 14. C语言中函数返回值的类型是由( ) 决定。 A)return语句中的表达式类型 B)调用函数的主调函数类型 C)调用函数时临时 D)定义函数时所指定的函数类型 15. 若在一个C源程序文件中定义了一个允许其他源文件引用的实型外部变量a,则在另一文件中可使用的引用说明是( ) 。 A)extern static float a; B)float a; C)extern auto float a; D)extern float a; 16. 定义一个void型函数意味着调用该函数时,函数( ) A)通过return返回一个用户所希望的函数值 B)返回一个系统默认值 C)没有返回值 D)返回一个不确定的值 17. 若定义函数float *fun( ),则函数fun的返回值为( ) 。 A)一个实数 B)一个指向实型变量的指针 C)一个指向实型函数的指针 D)一个实型函数的入口地址 18. C语言规定,程序中各函数之间( ) 。 A)既允许直接递归调用也允许间接递归调用 B)不允许直接递归调用也不允许间接递归调用 C)允许直接递归调用不允许间接递归调用 D)不允许直接递归调用允许间接递归调用 19. 若程序中定义函数 float myadd(float a, float b) { return a+b;} 并将其放在调用语句之后,则在调用之前应对该函数进行说明。以下说明中错误的是( ) 。 A)float myadd( float a,b); B)float myadd(float b, float a); C)float myadd(float, float); D)float myadd(float a, float b); 20.以下程序运行后的输出结果是( ) 。 fun(int a, int b) { if(a>b) return a; else return b; } main() { int x=3,y=8,z=6,r; r=fun(fun(x,y),2*z); printf(\} A) 3 B) 6 C) 8 D) 12 编程题: 1. 最大公倍数,最小公约数 编程 (容易被考到) 2. 字符串匹配函数,函数原型 int strcmp(char str1[],char str2[]),自己写代码实现。 匹配成功返回1,否则返回0。 本帖最后由 火雨 于 2016-12-16 18:54 编辑 闯关题4 选择填空题 1.如果x是整型变量,则合法的形式是( )。 A.&(x+5) B.*x C.&*x D.*&x 2.int a[6]={0,1,2,3,4,5},*p=a; 则( )不是对a数组元素的正确引用(其中0≤i<5)。 A.p B.*(*(a+i)) C.a[p-a] D.*(&a) 3.填空并输出结果 1. 2. 3. 4. 5. 6. 7. 8. 9. int main() {int i,*p,a[]={10,20,30,40,50,60}; p=a; for(i=0;i<5;i++) printf(\ _____________________________ ); return 0; } 复制代码 4.求输出结果 1. 2. 3. 4. 5. 6. 7. 复制代码 struct country { int num; char name[10]; }x[5]={1,\ struct country *p; p=x+2; printf(\ 5.下列程序的运行结果是: 1. 2. 3. 4. 5. 6. 7. 8. 9. int main() { char ch[3][4]={\ char (*q)[4]=ch; int i; *(*q+3)='b'; for(i=0;i<3;i++) printf(\ return 0; 10. } 复制代码 6.下面程序段的运行结果是()。 char *s=\ s+=2;printf(\ A)cde B)字符'c' C)字符'c'的地址 D)无确定的输出结果 7.在64位编译系统上,若有定义int a[]={10,20,30}, *p=&a; 当执行p++;后,下列说法错误的是()。 A)p向高地址移了一个字节 B)p向高地址移了4个字节 C)p向高地址移了8个字节 D)p与a+1等价 8.若有定义:int a[2][3],则对a数组的第m行n列元素地址的正确引用是()。 A)*(a[m]+n) B)(a+m) C)*(a+n) D)a[m]+n 9.若有以下程序: 1. 2. 3. 4. 5. 6. 复制代码 void main() { char *a[3] = {\ char **ptr = a; printf(\ } 这段程序的输出是() A) I l B) o o C) o love D) I love 10. 对于语句int *pa[5];下列描述中正确的是( ). A) pa是一个指向数组的指针,所指向的数组是5个int型元素 B) pa是一个指向某数组中第5个元素的指针,该元素是int型变量 C) pa [5]表示某个元素的第5个元素的值 D) pa是一个具有5个元素的指针数组,每个元素是一个int型指针 11. 若要对a进行++运算,则a应具有下面说明( ). A) int a[3][2]; B) char *a[ ] = {“12”,”ab”}; C) char (*a)[3]; D) int b[10], *a = b; 12. 下面代码能通过编译的是( ): A)int main() { int a[3]={1,2,3}; int *b[3]={&a[1],&a[2],&a[3]}; int **p = b; return 0; } B)int main() { int a[3]={1,2,3}; int *b[3]={a[1],a[2],a[3]}; int **p = b; return 0; } C)int main() { int a[3]={1,2,3}; int *b[3]={&a[1],&a[2],&a[3]}; int *p = b; return 0; } D)int main() { int a[3]={1,2,3}; int *b[3]={&a[1],&a[2],&a[3]}; int *p = &b; return 0; } 13. 下列选项中声明了一个指针数组的是( ): A)int *p[2]; B)int (*p)[2]; C)typedef int* intPtr; intPtr p[2]; D)A和B E)A和C F)B和C 14. 已定义以下函数 int fun( int *p) { return *p; } fun函数返回值是 ( ) A) 不确定的值 B) 一个整数 C) 形参p中存放的值 D) 形参p的地址值 15. 以下合法的赋值语句是( ) A) n=(i=2,++i); B) j++; C) ++(i+1); D) x==j>0; 编程题: 1.用指针编程实现滤出一个字符串里面的空格字符函数。 2.字符替换。要求用函数replace将用户输入的字符串中的字符t(T)都替换为e(E),并返回替换字符的个数。 选作题: 3.定义一个动态一维数组,能够根据输入的变量n和相关输入数据, 生成对应的含有n个元素的数组并逐项打印出来。 4.有5个字符串,首先将它们按照字符串中的字符个数由小到大排列, 再分别取出每个字符串的第三个字母合并成一个新的字符串输出(若少于三个字符的输出空格)。 要求:利用字符串指针和指针数组实现。 +++++++ PS:期末大项目3选1 仍然是进行状态哦~~ 祝大家期末取得好成绩~~~ 1.用指针编程实现滤出一个字符串里面的空格字符函数。 2.字符替换。要求用函数replace将用户输入的字符串中的字符t(T)都替换为e(E),并返回替换字符的个数。 选作题: 3.定义一个动态一维数组,能够根据输入的变量n和相关输入数据, 生成对应的含有n个元素的数组并逐项打印出来。 4.有5个字符串,首先将它们按照字符串中的字符个数由小到大排列, 再分别取出每个字符串的第三个字母合并成一个新的字符串输出(若少于三个字符的输出空格)。 要求:利用字符串指针和指针数组实现。 +++++++ PS:期末大项目3选1 仍然是进行状态哦~~ 祝大家期末取得好成绩~~~
正在阅读:
C语言闯关题01-18
厨房油烟机侧吸好还是顶吸好?油烟机侧吸和顶吸的区别12-28
2013学年第二学期期中考试高一地理试卷06-08
山东省济南一中2015届高三一模物理试题06-15
xxxx公司煤矿企业调度技术标准12-27
商务考察邀请函范文02-17
四川省自贡市贡井区成佳中学校2020-2021学年七年级上学期第一次月考数学试题(无答案)08-18
沟通员工和企业的桥梁03-14
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 闯关
- 语言
- 桥梁监理工程师职责
- 财政学部分练习题
- 公共关系学论文
- 消防专项方案
- 常用中成药习题
- 海工日常问题解答汇总 - 图文
- 建设创新实验室,为大学生创新活动和科学研究保驾护航
- 多网合一数字化校园网建设方案 - 图文
- 2016届高考语文新课标版一轮总复习即时练:专题20 一曲菱歌抵万
- 园林绿化、环境卫生管理分类改革(公益一类)
- 西南大学《儿童哲学》网上作业及参考答案
- 云大洞穴中心合作建议书
- 2018届中考物理分类汇编 滑轮与滑轮组专题
- 名师伴你行2016届高考英语一轮复习对点练习必修4 unit 3
- windows操作系统的现状和发展方向
- 神经外科颅内动脉瘤血管内介入栓塞治疗手术知情同意书
- 建构主义学习理论
- 哈尔滨工程大学船舶结构力学课程习题集答案
- 声声慢 学案
- 2018年15年室内设计毕业实习心得体会-精选word文档(2页)