ImageVerifierCode 换一换
格式:DOCX , 页数:53 ,大小:27.98KB ,
资源ID:758018      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-758018.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(C语言练习题选择题100道.docx)为本站会员(b****2)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

C语言练习题选择题100道.docx

1、C语言练习题选择题100道题目部分,(卷面共有100题,300.0分,各大题标有题量和总分)一、单项选择题(100小题,共300.0分)(3分)1以下是有关汉诺塔问题的程序段,若在main函数中有调用语句hanoi(3,A,B,C);则符合程序段运行结果的选项是void move(char getone,char putone)printf(“%c-%cn”,getone,putone);void hanoi(int n,char one,char two,char three)if(n=1) move(one,three);elsehanoi(n-1,one,three,two);move(

2、one,three);hanoi(n-1,two,one,three);A、A-C B、A-C C、A-C D、A-CA-B A-B A-B A-BC-B C-A C-B C-BB-A A-B A-C A-CC-B B-C B-A A-BA-C A-C B-C B-CA-B A-B A-C A-C(3分)2 以下不正确的说法是C语言规定 A、实参可以是常量、变量或表达式B、形参可以是常量、变量或表达式C、实参可以为任意类型D、形参应与其对应的实参类型一致(3分)3 以下正确的描述是在C语言程序中 A、函数的定义可以嵌套,但函数的调用不可以嵌套B、函数的定义不可以嵌套,但函数的调用可以嵌套C、函

3、数的定义和函数的调用均不可以嵌套D、函数的定义和函数的调用均可以嵌套(3分)4 以下程序的功能是计算函数F(x,y,z)=(x+y)/(x-y)+(z+y)/(z-y)的值,请选择填空。#include #include main()float x,y,z,sum;scanf(“%f %f %f”,&x,&y,&z);sum=f(【1】)+f(【2】);printf(“sum=%fn”,sum);float f(float a,float b)float value;value=a/b;return(value);【1】 A、x-y,x+y B、x+y,x-y C、z+y,z-y D、z-y,

4、z+y【2】 A、x-y,x+y B、x+y,x-y C、z+y,z-y D、z-y,z+y(3分)5 以下错误的描述是函数调用可以 A、出现在执行语句中B、出现在一表达式中C、做为一个函数的实参D、做为一个函数的形参(3分)6 下面函数调用语句含有实参的个数为func(exp1,exp2),(exp3,exp4,exp5);A、1 B、2 C、4 D、5(3分)7 C语言规定,函数返回值的类型是由A、 return语句中的表达式类型所决定B、 调用该函数时的主调函数类型所决定C、 调用该函数时系统临时决定D、 在定义该函数时所指定的函数类型所决定(3分)8 C语言允许函数值类型缺省定义,此时

5、该函数值隐含的类型是A、 float型B、 int型C、 long型D、 double型(3分)9 以下程序有语法性错误,有关错误原因的正确说法是main()int G=5,k;void prt_char(); k=prt_char(G); A、 语句void prt_char();有错,它是函数调用语句,不能用void说明B、 变量名不能使用大写字母C、 函数说明和函数调用语句之间有矛盾D、 函数名不能使用下划线(3分)10 以下正确的说法是A、 定义函数时,形参的类型说明可以放在函数体内B、 return后边的值不能为表达式C、 如果函数值的类型与返回值类型不一致,以函数值类型为准D、 如

6、果形参与实参的类型不一致,以实参类型为准(3分)11 若调用一个函数,且此函数中没有return语句,则正确的说法是该函数 A、没有返回值B、返回若干个系统默认值C、能返回一个用户所希望的函数值D、返回一个不确定的值(3分)12 以下正确的说法是在C语言中 A、实参和与其对应的形参各占用独立的存储单元B、实参和与其对应的形参共占用一个存储单元C、只有当实参和与其对应的形参同名时才共占用存储单元D、形参是虚拟的,不占用存储单元(3分)13 以下正确的函数形式是A、 double fun(int x,int y) z=x+y; return z; B、 fun(int x,y) int z; re

7、turn z; C、 fun(x,y) int x,y; double z; z=x+y; return z; D、 double fun(int x,int y) double z; z=x+y; return z; (3分)14 以下正确的函数定义形式是A、 double fun(int x,int y)B、 double fun(int x;int y)C、 double fun(int x,int y);D、 double fun(int x,y);(3分)15 以下正确的说法是A、 用户若需调用标准库函数,调用前必须重新定义B、 用户可以重新定义标准库函数,若如此,该函数将失去原有含

8、义C、 系统根本不允许用户重新定义标准库函数D、 用户若需调用标准库函数,调用前不必使用预编译命令将该函数所在文件包括到用户源文件中,系统自动去调(3分)16 建立函数的目的之一是A、提高程序的执行效率 B、提高程序的可读性C、减少程序的篇幅 D、减少程序文件所占内存(3分)17 C语言规定,简单变量做实参时,它和对应形参之间的数据传递方式是A、 地址传递B、 单向值传递C、 由实参传给形参,再由形参传回给实参D、 由用户指定传递方式(3分)18 若用数组名作为函数调用的实参,传递给形参的是A、 数组的首地址B、 数组第一个元素的值C、 数组中全部元素的值D、 数组元素的个数(3分)19 以下

9、程序是选出能被3整除且至少有一位是5的两位数,打印出所有这样的数及其个数。请选择填空。sub(int k,int n)int a1,a2;a2=【1】;a1=k-【2】;if(k%3=0&a2=5)|(k%3=0&a1=5)printf(“%d”,k);n+;return n;else return -1;main()int n=0,k,m;for(k=10;k=99;k+)m=sub(k,n);if(m!=-1) n=m;printf(“nn=%d”,n);【1】 A、k*10 B、k%10 C、k/10 D、k*10%10【2】 A、a2*10 B、a2 C、a2/10 D、a2%10(3

10、分)20 下面程序的功能是将小写字母变成对应大写字母后的第二个字母。其中y变成A,z变成B。请选择填空。#include main()char c;while(c=getchar()!=n)if(c=a&cZ)【2】;printf(“%c”,c);【1】 A、c+=2 B、c-=32 C、c=c+32+2 D、c-=30【2】 A、c=B B、c=A C、c-=26 D、c=c+26(3分)21 一个C语言程序是由A、一个主程序和若干子程序组成B、函数组成C、若干过程组成D、若干子程序组成(3分)22 C语言规定:在一个源程序中,main函数的位置A、必须在最开始B、必须在系统调用的库函数的后

11、面C、可以任意D、必须在最后(3分)23 以下叙述不正确的是A、一个C源程序可由一个或多个函数组成B、一个C源程序必须包含一个main函数C、C程序的基本组成单位是函数D、在C程序中,注释说明只能位于一条语句的后面(3分)24 以下叙述正确的是A、在C程序中,main函数必须位于程序的最前面B、C程序的每行中只能写一条语句C、C语言本身没有输入输出语句D、在对一个C程序进行编译的过程中,可发现注释中的拼写错误(3分)25 一个C程序的执行是从A、本程序的main函数开始,到main函数结束B、本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C、本程序的main函数开始,到本程序文件的

12、最后一个函数结束D、本程序文件的第一个函数开始,到本程序main函数结束(3分)26 在一个C源程序文件中,若要定义一个只允许本源文件中所有函数使用的全局变量,则该变量需要使用的存储类别是A、extern B、register C、auto D、static(3分)27 以下程序的正确运行结果是main()int a=2,i;for(i=0;i3;i+) printf(“%4d”,f(a);f(int a)int b=0;static int c=3;b+; c+;return(a+b+c);A、7 7 7 B、7 10 13 C、7 9 11 D、7 8 9(3分)28 凡是函数中未指定存储

13、类型的局部变量,其隐含的存储类别为A、自动(auto) B、静态(static)C、外部(extern) D、寄存器(register)(3分)29 以下程序的正确运行结果是#include void num()extern int x,y;int a=15,b=10;x=a-b;y=a+b;int x,y;main()int a=7,b=5;x=a+b;y=a-b;num();printf(“%d,%dn”,x,y);A、12,2 B、不确定 C、5,25 D、1,12(3分)30 以下程序的正确运行结果是#define MAX 10int aMAX,i;main()printf(“n”);

14、 sub1(); sub3(a); sub2(); sub3(a);sub2()int aMAX,i,max;max=5;for(i=0;imax;i+) ai=i;sub1()for(i=0;iMAX;i+) ai=i+i;sub3(int a)int i;for(i=0;iMAX;i+) printf(“%d”,ai);printf(“n”);A、 0 2 4 6 8 10 12 14 16 180 1 2 3 4B、 0 1 2 3 40 2 4 6 8 10 12 14 16 18C、 0 1 2 3 4 5 6 7 8 90 1 2 3 4D、 0 2 4 6 8 10 12 14

15、16 180 2 4 6 8 10 12 14 16 18(3分)31 以下不正确的说法为A、 在不同函数中可以使用相同名字的变量B、 形式参数是局部变量C、 在函数内定义的变量只在本函数范围内有效D、 在函数内的复合语句中定义的变量在本函数范围内有效(3分)32 以下正确的说法是如果在一个函数中的复合语句中定义了一个变量,则该变量A、 只在该复合语句中有效B、 在该函数中有效C、 在本程序范围内均有效D、 为非法变量(3分)33 折半查找法的思路是:先确定待查元素的范围,将其分成两半,然后测试位于中间点元素的值。如果该待查元素的值大于中间点元素,就缩小待查范围,只测试中点之后的元素;反之,测

16、试中点之前的元素,测试方法同前。函数binary的作用是应用折半查找法从存有10个整数的a数组中对关键字m进行查找,若找到,返回其下标值;返回-1。请选择填空。binary(int a10,int m)int low=0,high=9,mid;while(low=high)mid=(low+high)/2;if(mamid) 【2】;else return(mid);return(-1);【1】 A、high=mid-1 B、low=mid+1 C、high=mid+1 D、low=mid-1【2】 A、high=mid-1 B、low=mid+1 C、high=mid+1 D、low=mid

17、-1(3分)34 若使用一维数组名作函数实参,则以下正确的说法是A、 必须在主调函数中说明此数组的大小B、 实参数组类型与形参数组类型可以不匹配C、 在被调函数中,不需要考虑形参数组的大小D、 实参数组名与形参数组名必须一致(3分)35 已有以下数组定义和f函数调用语句,则在f函数的说明中,对形参数组array的错误定义方式为int a34;f(a);A、 f(int array6)B、 f(int array3)C、 f(int array4)D、 f(int array25)(3分)36 以下程序的正确运行结果是#include main()int k=4,m=1,p;p=func(k,m

18、); printf(“%d”,p);p=func(k,m); printf(“%dn”,p);func(int a,int b)static int m=0,i=2;i+=m+1;m=i+a+b;return(m);A、8,17 B、8,16 C、8,20 D、8,8(3分)37 下面程序的运行结果是#include main()int i,j,a=0;for(i=0;i2;i+)for(j=0;j4;j+)if(j%2) break;a+;a+;printf(“%dn”,a);A、4 B、5 C、6 D、7(3分)38 下面程序的运行结果是#include main()int i;for(i

19、=1;i=5;i+)if(i%2) printf(“*”);else continue;printf(“#”);printf(“$n”);A、*#*#*#$ B、#*#*#*$ C、*#*#$ D、#*#*$(3分)39 下面程序的运行结果是#include main()int i,j,x=0;for(i=0;i2;i+)x+;for(j=0;j=3;j+)if(j%2) continue;x+;x+;printf(“x=%dn”,x);(3分)40 下面程序的运行结果是#include main()int a,b;for(a=1,b=1;a=20) break;if(b%3=1) b+=3;

20、 continue; b-=5;printf(“%dn”,a);A、7 B、8 C、9 D、10(3分)41 下面程序的功能是将从键盘输入的偶数写成两个素数之和。请选择填空。#include #include main()int a,b,c,d;scanf(“%d”,&a);for(b=3;b=a/2;b+=2)for(c=2;csqrt(b) d= 【1】 ; else break;for(c=2;csqrt(d) printf(“%d=%d+%dn”,a,b,d);【1】A、a+b B、a-b C、a*b D、a/b(3分)42 下面程序的功能是计算正整数2345的各位数字平方和,请选择填

21、空。#include main()int n,sum=0;n=2345;dosum=sum+【1】n=【2】while(n);printf(“sum=%d”,sum);【1】A、n%10 B、(n%10)*(n%10) C、n/10 D、(n/10)*(n/10)【2】 A、n/1000 B、n/100 C、n/10 D、n%10(3分)43 若运行以下程序时,从键盘输入3.6 2.4(表示回车),则下面程序的运行结果是_。#include #include main()float x,y,z;scanf(“%f %f”,&x,&y);z=x/y;while(1)if(fabs(z)1.0)

22、x=y; y=z; z=x/y; else break;printf(“%fn”,y);(3分)44 若i为整型变量,则以下循环执行次数是for(i=2;i=0;) printf(“%d”,i-);A、无限次 B、0次 C、1次 D、2次(3分)45 对for(表达式1;表达式3)可理解为A、for(表达式1;0;表达式3)B、for(表达式1;1;表达式3)C、for(表达式1; 表达式1;表达式3)D、for(表达式1; 表达式3;表达式3)(3分)46 下面有关for循环的正确描述是A、 for循环只能用于循环次数已经确定的情况B、 for循环是先执行循环体语句,后判断表达式C、 在fo

23、r循环中,不能用break语句跳出循环体D、 for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来(3分)47 下面程序的运行结果是#include main()int a=1,b=10;do b-=a; a+; while(b-0);printf(“a=%d,b=%dn”,a,b);A、a=3,b=11 B、a=2,b=8 C、a=1,b=-1 D、a=4,b=9(3分)48 若运行以下程序时,从键盘输入ADescriptor(表示回车),则下面程序的运行结果是#include main()char c;int v0=0,v1=0,v2=0;doswitch(c=getchar(

24、)case a: case A:case e: case E:case i: case I:case o: case O:case u: case U: v1+=1;default: v0+=1; v2+=1;while(c!=n);printf(“v0=%d,v1=%d,v2=%dn”,v0,v1,v2);A、v0=7,v1=4,v2=7 B、v0=8,v1=4,v2=8C、v0=11,v1=4,v2=11 D、v0=12,v1=4,v2=12(3分)49 下面程序的运行结果是#include main()int y=10;do y-; while(-y);printf(“%dn”,y-);

25、A、-1 B、1 C、8 D、0(3分)50 下面程序的功能是把316表示为两个加数的和,使两个加数分别能被13和11整除。请选择填空。#include main()int i=0,j,k;do i+; k=316-13*i; while( 【1】 );j=k/11;printf(“316=13*%d+11*%d”,i,j);A、k/11 B、k%11 C、k/11=0 D、k%11=0(3分)51 以下不是无限循环的语句为A、 for(y=0,x=1;x+y;x=i+) i=xB、 for(;x+=i);C、 while(1) x+; D、 for(i=10;i-) sum+=i;(3分)5

26、2 下面程序是从键盘输入学号,然后输出学号中百位数字是3的学号,输入0时结束循环。请选择填空。#include main()long int num;scanf(“%ld”,&num);doif(【1】) printf(“%ld”,num);scanf(“%ld”,&num);while( 2】);【1】A、num%100/10=3 B、num/100%10=3C、num%10/10=3 D、num/10%10=3【2】A、n=n-2 B、n=n C、n+ D、n-=1(3分)53 下面程序段的运行结果是for(y=1;y10;) y=(x=3*y,x+1),x-1);printf(“x=%d,y=%d”,x,y);A、x=27,y=27 B、x=12,y=13 C、x=15,y=14 D、x=y=27(3分)54 若有如下语句int x=3;do printf(“%dn”),x-=2; while(!(-x);则上面程序段A、输出的是1 B、输出的是1和-2 C、输出的是3和0 D、是死循环(3分)55 以下描述中正确的是A、 由于do-while循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句B、 do-while循环由do开始,用while结束,在while(表达式)后面不能写

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2