C复习试题

上传人:h****4 文档编号:199094822 上传时间:2023-04-10 格式:DOCX 页数:11 大小:24.50KB
收藏 版权申诉 举报 下载
C复习试题_第1页
第1页 / 共11页
C复习试题_第2页
第2页 / 共11页
C复习试题_第3页
第3页 / 共11页
资源描述:

《C复习试题》由会员分享,可在线阅读,更多相关《C复习试题(11页珍藏版)》请在装配图网上搜索。

1、细心整理选择题1.以下if语句语法正确的选项是( B )。A.if(x0)printf(“%f”,x)B.if(x0)x=x+y;printf(“%f”,x); else printf(“%f”,-x); else printf(“%f”,-x);C.if (x0) x=x+y;printf(“%f”,x);D.if(x0)x=x+y;printf(“%f”,x) else printf(“%f”,-x); else printf(“%f”,-x);2.以下关于C语言程序说法正确的选项是DAC语言程序总是从有定义的函数起依次执行B在C语言程序中被调用函数必需在main函数中定义CC语言程序中的

2、main函数必需放在程序的起先局部DC语言程序总是从main函数起起先执行3.C语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符 C 。A.必需为字母或下划线 B.必需为下划线C.必需为字母 D.可以是字母、数字和下划线中的任一种字符4.下面合法的C语言标识符是( D )A.int_ B.intC. 5.假设有int a,b;下面正确运用变量a,b的表达式是( B )3.0B.(a+b)+C.7+D.a+a+b6.下面几种运算符中,优先级最低的是( )A.| |B.,C.=D.?:7.下面转义字符中,表示制表符的是 ( B )A.0 B.t C.n D.f8.确定ch是字符型变

3、量,下面不正确的赋值语句是 B 。A.ch = 5 + 9 ;B.ch= a + b ; C.ch = 0 ;D. ch= 7 + 6;9.设有条件表达式(exp)? a+:b-,那么以下表达式中能够及该表达式完全等价的表达式是( A )A.(exp!=0)? a+b-B.(exp=0)? a+b-C.(exp=1)? a+b-D.(exp!=1)? a+:b-10.执行while(表达式)循环的条件是CA当表达式的值为0时 B仅当表达式的值为1时C当表达式的值非0时 D当表达式的值不为1时11.设有int a=3,b=-4,c=5;表达式(ab)?a&cy?x+2:y-2后变量z的值是 (

4、A )A.0 B.1C.2 D.314.关于break语句,以下说法不正确的选项是 ( C )A.它可以用于循环语句中B.它可以用于switch语句中C.可以从最内层循环构造中干脆跳出最外层循环构造D.可以从当前switch构造中跳出15.假设有int a=8,b=5;语句printf(“%d”,ab);的执行结果是( B )A.0B.1C.5D.816.下面程序的输出结果是( C )main( )int a=3,b=5;a+=b;b+=a;printf(“%d,d”,a,b);A.3,5B.5,3C.8,13D.13,2117.假设有int a=8,b=12,max,min;执行语句if(a

5、b)max=a;min=b;elsemax=b;min=a;的结果是( C )A.max的值是8,min的值是12B.max的值是8,min的值是8C.max的值是12,min的值是8D.max的值是12,min的值是1218.执行下面程序段后,a的值是int a=100;doa+;while(a120);( B )A.100B.101C.120D.12119.假设有定义int ch54;那么数组ch中的元素的个数是( D )A.9B.12C.15D.2020.假设有说明:int a10 ; 那么对a 数组元素的正确引用是 A 。A. a10B.a10 - 10C.a(5)D.a3.521.假

6、设有定义:int a10;那么数组元素的下标的下限和上限分别是CA.0和1B.1和9C.0和9D.1和1022.假设有定义char a35;那么数组a在内存中占用的字节数是 B A.8B.15C.16D.3023.对以下说明的正确理解是 B 。 int a10 = 6, 7, 8, 9, 10A.将5个初值依次赋给a 1 至a5 B.将5个初值依次赋给a 0 至a 4C.将5个初值依次赋给a 6 至a10 D.因长度及初值个数不同,故语句错误24.假设有定义char str20;能使数组str得到字符串I am a boy的正确输入方法是( A )A.gets(str);B.str=getch

7、ar( );C.scanf(c,str);D.scanf(s,str);25.有两个字符数组 a, b,那么以下正确的输入格式是 C 。A.scanf (% s % s, &a, &b )B.gets (a, b)C. scanf (% s % s, a, b ) D.gets (a); gets (b)26.假设主函数调用funl函数,而funl函数调用fun2函数,这种逐级调用称为( D )A.干脆递归调用B.间接递归调用C.并行调用D.嵌套调用27.下面关于函数参数的说法中,不正确的选项是( B )A.实参可以是常量、变量或表达式B.形参可以是常量、变量或表达式C.实参可以是数组元素或数

8、组名D.形参应及其对应的实参类型一样28.在一个c源程序文件中,假设要定义一个只允许根源文件中全部函数运用的全局变量,那么该变量须要运用的存储类别是 ( D )A.extern B.register C.auto D.static29.C语言规定,简洁变量做实参时,它和对应形参之间的数据传递方式是 ( B )A.地址传递 B.单向值传递C.由实参传给形参,再由形参传回给实参 D.由用户指定方式30.在C语言中,确定函数返回值的类型由BA.return语句中的表达式类型确定B.调用该函数的主函数类型确定C.调用函数时临时确定D.定义函数时所指定的函数类型确定31.设有下面的构造体和构造变量定义:

9、Struct teachar*name;float price,weight;struct tea teal=green_tea,2.0,28.5;struct tea *p_struct=&teal;语句:printf(s,.1f ,p_structname,p_structprice*p_structweight);的输出结果是( ),green_teaC.green_tea,57.0D.green_tea32.以下关于构造体类型定义正确的选项是BA.struct ABCB.struct ABC int a int a; char bchar b; char * p char * p; C

10、.struct ABCD.struct ABC int a; int a, char b;char b, char * p;char * p, ;33.设有下面的构造体和构造变量定义,以下选项关于构造体类型变量赋值不正确的选项是( )struct carlong id:char*name;struct car carl; A.carl.id=10101; B.carl.name=BlueSky;C.carl.*name=BlueSky; D.carl.id=123456L;34.设有下面的构造体和构造变量定义: struct student long id: char*name; int ma

11、th; ; struct student studl; 关于构造体类型变量赋值正确的选项是 A.studl.id=1001;studl.name=Tom;B.id=1001;*studl. name=Tom;=1001;studl.*name=Tom; =1001L;*studl.name=Tom;35.下面关于构造体类型变量定义正确的选项是( )A.struct bunding int area=12345;char *name=No1 Hotel; bl;B.struct buildingint area=12345;char *name=Nol Hotel; b1;.C.building

12、 int area=12345;char *name=No1 Hotel; b1;D.STRUCT building int area=12345;char *name=Nol Hotel; b1;36.确定ch是字符型变量,下面不正确的赋值语句是 B 。A.ch = 95 ;B.ch= “a” ; C.ch = n ;D. ch= a + 6;37.假设有int a =1,2,3,4,5,6,7,8,9,10,且0i10,那么对数组元素地址正确表示的是 D 。A.&a+1B.&a+ + C.&aD.&ai38.下面转义字符中,表示水平制表符的是 ( C )A.0 B.n C.t D.39.在

13、C程序中,假设用根本数据类型所定义的变量调用函数,正确的说法是A. 由系统自动指定对应实参和形参是否共用存储单元B. 对应实参和形参各占一个独立的存储单元C. 对应实参和形参共用一个存储单元D. 可以由用户指定对应实参和形参是否共用存储单元40.假设盼望函数中的局部变量的值在函数调用完毕后不消逝而接着保存原值,那么该局部变量须要运用的存储类别是 ( )A.extern B.register C.auto D.static41.C语言的auto型变量存储在 A.动态存储区中 B.静态存储区中C.计算机CPU的存放器中 D.外存储器中42.设p1和p2是指向同一个字符串的指针变量,且c为字符型变量

14、,那么以下不能正确执行的赋值语句是 A.c=*p1+*p2; B.p2=*p1;C.p1=p2; D.c=*p1*(*p2);43.以下选项中,对指针变量p的正确操作是 A.int a5,*p;p=a; B.int a5,*p;p=a;C.int a5;int *p=a5; D.int a5;int*p,p2=a;*p=*p2;44.对于for(表达式l;表达式2;表达式3)语句;限制循环完毕的表达式是( )A.表达式1B.表达式2C.表达式3 D.表达式l和表达式345.下面表达中不正确的选项是A. 不同函数中可以运用一样名字的变量B. 形式参数是局部变量C. 在一个函数内部定义的变量只能在

15、本函数范围内有效D. 在一个函数内部的复合语句中定义的变量在本函数范围内有效46.下面能正确进展字符串赋值操作的是( )A.char s5=ABCDE;B.char s5=A,B,C,D,E;C.char *s;s=ABCDE;D.char *s;scanf(s,s);47.下面程序段的运行结果是( )chars *s=abcde;s+=2 printf(d,s);A.cdeB.字符cC.字符c的地址D.无确定的输出结果程序填空(类似试验六、试验七、试验八中的题目)阅读分析题 1.写出以下程序的运行结果。 main() int a=10,b=8,c;c=a;a=b;b=c;printf(a=d

16、,b=dn,a,b); 2.写出以下程序的功能。假如输入14,写出程序的输出结果。void main(void) int x;scanf(d,x);if(x5=0x7=0)printf(yes);elseprintf(no);3.写出下面程序的功能;假如输入6和9,写出程序的输出结果。 main() int a,b,x,y;scanf(dd,&a,b); x=a*a+b*b;if(x100) y=x100;printf(d,y); else printf(d,a+b); 4.阅读下面的程序并答复以下问题main( ) char a20=1234567890;int i;i=8;printf(s

17、n,ai-3);(1)数组中a10号元素中存储的是什么字符?(2)请写出程序的运行结果。5.写出下面程序的功能及运行结果。 main() int n=1,sum=0; do sum=sum+n; n+=2; while(n100); printf(sum=dn,sum); 6.写出下面程序的功能和运行结果。 int fun(int a4) int i,j,k,tem tem=a00; for(I=0;i3;i+) for(j=0;j4;j+) if(aijtem)tem=aij; return(tem); main() int b34=1,3,-5,7,2,4,-6,8,10,20,-30,4

18、0;printf(dn,fun(b); 7.阅读以下程序并写出运行结果。void main(void)int x=11;switch(x-1)case O:printf(x=dn,x+);break:case 10:printf(x=dn,x*2);case 20:printf(x=dn,x*4);default:printf(x=dn,x);8.阅读以下程序并写出运行结果。main( ) float x;int a=0;scanf(f ,&x);switch(x10-5) case 7: a+;case 6: a+;printf(d,a);case 5: a+;break;case 4: a

19、+;default: a+;printf(d,a);case 1: a+=2:printf(dn,a);(1)当程序运行后输入115.5后,写出程序的执行结果。(2)当再次运行程序后输入45后,写出程序的执行结果。9.以下程序中字符串中各单词之间有一个空格,写出程序的输出结果。 #include #include main() char str1=How do you do;puts(str1);strcpy(str1+str1en(str1)2,es she);printf(%sn,str1); 10.写出以下程序的功能和运行结果。 #include reverse (char *s) ch

20、ar*t,ch; for(t=s+strlen(s)-1;st;s+,t-) ch=*s;*s=*t;*t=ch; main() char*s1=123456; reverse(s1); printf(sn,s1); 11.阅读以下程序,当依次输入11,l2,l3,14,16这5个数时,请写出程序的运行结果。void main(void)int x,i,s=O;for(i=O;i5;i+)scanf(d,&x);if(x2)continue;printf(dt,x);s+=x;printf(n);printf(s=dn,s);12.阅读以下程序并写出运行结果。void f1(char*t,ch

21、ar*s);void main(void)char s120=abcdl2345,t120=xyz;printf(snsn,s1,t1);f1(t1,s1);printf(sn,t1);void f1(char*t,char*s)while(*t=*s)!=0)t+;s+;13.阅读以下程序序并写出运行结果。int fun(int y);void main(void)int x4=3,5,7,0,s=0,i=0;while(xi)s+=fun(xi);i+;printf(s=dn,s);int fun(int y)static int a=O;a=a+y;return a;14.阅读下面程序,

22、写出运行结果。 #include #include void f(char *s)char *t, c, *p=s;for(t=s+strlen(s)-1;st;s,t) c=*s,*s=*t,*t=c;printf(%sn,p);void main (void) char a 20=abcdefg;f(a);15. 阅读以下程序序并写出运行结果。main() int s, p; s=p=5; p=+s; p+; +p; printf(%dn,p); 16. 阅读以下程序序并写出运行结果。void f ( )int a=3;static int b=4;a=a+1;b=b+1;printf(a

23、= %d , b= %dn,a,b);void main( )f( );f( );f( );17. 阅读以下程序序并写出运行结果。void main( ) int x=1, y=1, i=1;do x=+x+y ; y=x+y- ; +;printf(x=%d y=%dn,x,y);while(i=3);18. 阅读以下程序序并写出运行结果。void main(void)int a =10,20,30,40,50,60,*p;p=a;p+ +;*(p+3)+=1;printf(%dn,*p);printf(%dn,*(p+3);编程1从键盘输入10个整数存放到数组中,求该数组中全部正数的累加和并输出。2假设有n行n列数组,试编写一程序,分别求出两条对角线元素之和。从键盘输入n*n个整型数,n203.从键盘输入10个整数,编程求其中大于3且小于100的数的平均值并输出结果。4.从键盘输入10个整数存放到数组中,计算数组中下标为偶数的全部元素的积。5.编程求20至100之间素数的累加和并输出该累加和。6.从键盘上输入30个整数,输出其中能被3整除的数,并求出全部能被3整除的数之和。

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!