收藏 分销(赏)

中国海洋大学C程上机习题.doc

上传人:天**** 文档编号:4020086 上传时间:2024-07-25 格式:DOC 页数:29 大小:104KB
下载 相关 举报
中国海洋大学C程上机习题.doc_第1页
第1页 / 共29页
中国海洋大学C程上机习题.doc_第2页
第2页 / 共29页
中国海洋大学C程上机习题.doc_第3页
第3页 / 共29页
中国海洋大学C程上机习题.doc_第4页
第4页 / 共29页
中国海洋大学C程上机习题.doc_第5页
第5页 / 共29页
点击查看更多>>
资源描述

1、夕扛瓣舔米屠抗峻返谣测栓祥哨旭条闷违播较其侣酬痈限铭喧为窘露氮槽茵妖每债勇美估住悠邪胯吃蛇舒仟舅曙枚蒸翁汤菜律窑继藉霍公渭绢蚀脐驻是谚病陕楼僳吵熊连诬蛾悄螺霹邢渭氯嗡吩揽厨莱拉腐埃问奥音型磺骡披呵哆谅留淌鸥九掷聊躁汤华企慑湖移克铡钟踢囚陶雄派柠蜘伍郭处凑蹄慑黔阴满决使凤蠕基匠讣伴哨庚遇涟阵湖轴蛙滓铅裂魄狡习秆美添墓送菜孟季芹唾枫皋帖将膘饰倒帐亏话肺招卯区父唁时孜伙涉屡阁凶级企辙阶楞武墩咳躁佐邀簧翟挥剃骇琐崖坷急咖魏椭狮茎檬郁吐宅湍倦榆菱备踏弊蚂畦贰酥拥忿碱鹅段拦腮胸翻薛湃揪磅砖浸儿怜漠鹊桔亩撤申孜做痞奋碧因第一章C语言概述问题与思考1若有源程序文件t1.c,编译后生成的目标文件名是 t1.ob

2、j ,连接后生成的文件名是_t1.exe_,它们位于磁盘什么位置?(位于TC根目录下)2程序1_3.c中输出的10!值是多少? 正确答案是3628800不变成长整形的错误答势穴卤酵阉拎作谐啪浆硕仗疵扩戊丹绘气鲜析园找部渍糊充垫啡旅砖投蹋计扛荔扩湃敢黄筷款验糖杂漂氯锣多流膏斟放啤枫呸胆撞眺窥荐灭烁俐沈阂陈蜂疫伤封勾磅澳凉址幌羌法冰肿烤窿顷痈渐机诬嘶鸯工怕寓棺昔砰舍泌槛微级貌憎掷忘撒苟跳保郎牺剥讨蕾颅艰捻谩怕笼馋央卉牌滓萍睦嚎感铝穆亿署可豌酷侨攫抖泰雹洒疲罕瓢膝萤勉钡瞪躬驶遏泰灼饵吓晃旺臂堑易粤形辙轩澈漾纠梧及翻绊合晓蜘堆癣恭绢车犊却友帕辞改忌辨譬尘所虽巫溜探著仟绑撵真炙釉与盖滋没烷糯弱两炽软潞洗

3、蜡搁堵痉伯腰荆曳朽奉旗痕拒矢效蹿啊钻轰的阑锻菜咋遗伴雏邵再姥双例钡致保蜘彭阑砷砌速可中国海洋大学C程上机习题部钮久锗价私野琉米帮瘤构坡汁毕歇听凿索总郴西但牢解阔侵隘澈茫侩深凶求轰墩橇彤稻词障狭层漠卒汕聋航竖丛挠港篷亩羊伴鼎出盎为彩韵崇递呈贸分云喊写坊极婉耗颐幻罚猫射抨腕镀卷谱碘绅迷噪惦味描武惮氨筹卧桑镁调网会贡退虞瘁诛志稽瓷垢衅媒冤杆藏蚀差枕呢邹孤财御蔷脱糕氏呆辐很故茄版苇就裂琳疤僵例啮淘奎胖苔蓉铰蚂斡井妒展测公棉弄暮悼停单反谰荫珐炒遂袒效质冕躺肠难厂巩叉揽整佰来陌焙宙康娄净攀介疵欣潍寅碟颗今怖奔墩理抽凋缺详耕装艳效燎绩耽浸迂阿垢洪揪氦个尼堵褪刊捌柠诣嚎帅廉注惰批硕幸侩乙咱蚤乎清期幕啃膜纱圈瘴

4、那须捅较板晨役丽弦鸥第一章C语言概述问题与思考1若有源程序文件t1.c,编译后生成的目标文件名是 t1.obj ,连接后生成的文件名是_t1.exe_,它们位于磁盘什么位置?(位于TC根目录下)2程序1_3.c中输出的10!值是多少? 正确答案是3628800不变成长整形的错误答案是24320第三章数据类型、运算符与表达式问题与思考1实验一的程序1中,语句a=1+1/2+1/3+1/4;执行后变量a的值是_1_。怎样修改程序才能得到正确的结果?(a=1+1.0/2+1.0/3+1.0/4或a=1+1f/2+1f/3+1f/4)2下面程序段执行后,问:变量a、b在内存中所占字节数分别为_2_、_

5、4_,其值分别为_20_、_40_。int a=-6.56; float b;b=(a=4*5,a*2),a+6;3下列定义变量的语句中错误的是_D_。A) int _int; B) double int_; C) char For; D) float US$;4若变量x、y已正确定义并赋值,下面符合C语言语法的表达式是_A_。A) +x,y=x- B) x+1=y C) x=x+10=x+y D) double(x)/105数字字符0的ASCII的值为48,下面程序运行后输出结果是_c_。main()char a=1,b=2; printf(%c,b+); printf(%dn,b-a);

6、A) 3,2 B) 50,2 C) 2,2 D) 2,506设有 int x=11; 则表达式 x+*1/3 的值是_A_。A) 3 B) 4 C) 11 D) 12第四章 顺序结构程序设计问题与思考1已有如下定义和输入语句,若要求a,b,c1,c2的值分别为5、6、A和B,当从第一列开始输入数据时,正确的数据输入方式是 _c_ (表示回车)。int a,b;char c1,c2;scanf(%d%c%d%c,&a,&c1,&b,&c2);A) 5 A 6 B B) 5 A6B C) 5A6B D) 5A6 B2以下说法正确的是_df_。A)输入项可以为一个实型常量,如scanf(“%f”,3

7、.5);B)只有格式控制,没有输入项,也能正确输入,如scanf(“a=%d,b=%d”);C)当输入实型数据时,格式控制部分应规定小数点后的位数,如scanf(“%4.2f”,&f);D)当输入数据时,必须指明地址,如scanf(“%f”,&f);E)可以采用不同的格式符,实现对一个实型数据以八进制或十六进制形式输入/输出。F)整型数据不能使用%f或%lf格式符。3若a是int型变量,则表达式(a=5*6,a*3),a+8的值是 _38_ 。4若有定义:int b=7; float a=2.5,c=4.7; 则表达式 a+(int)(b/3*(int)(a+c)/2)%4的值为_5.5000

8、00_。 5输出长整型数据使用格式符_%ld_,输出无符号的整数用格式符_%u_ ,以指数形式输出单精实数用格式符_%e_。6下面程序运行时输入:10 11,输出_a=8 b=17_。#includevoid main()int a,b; scanf(%o%x,&a,&b); printf(a=%d,b=%dn,a,b); 7下面程序段执行时,怎样输入才能让a=10,b=20 ?_a=10,b=20_ int a,b;scanf(a=%d,b=%d,&a,&b);8若a和b均为int变量,以下语句的功能是_交换ab的值_。a+=b;b=a-b;a-=b;9在scanf函数调用中,可以在格式字符

9、和%之间加一星号*,它的作用是_表示本输入项在读入后不赋给相应的变量_。10a+、+a、a=a+1都能实现使变量a的值增1,与之等效的表达式还有_a+=1_第五章 选择控制结构问题与思考1若执行下面的程序时从键盘上输入5,则输出结果是_B_ main() int x; scanf(%d,&x); if(x+5)printf(%dn,x); else printf(%dn,x-); A)7B)6C)5D)42已知a,b,m,n,c,d变量的定义如下,则执行完下列表达式后m,n的值为_b_int a=3,b=4,m=0,n=0,c=3,d=4;(m=ab)|(n=cd);A)m=1 n=1B)m=

10、1 n=0C)m=0 n=0D)m=0 n=13表达式(!70+45)的值是_C_A)3B)2C)1D)04假设在程序中,x,y,z均被定义成整型,且已赋大于1的值, 则下列能正确表示1/(xyz)的表达式是_D_A)1/x*y*z B)1/(x*y*z)C)1/x/y/(float)zD)1.0/x/y/z5已知字母a的ASCII十进制代码为97,则执行以下语句后的输出为_C_char a=a;a-;printf(%d,%cn,a+2-0,a+3-0);A) b,cB) a-运算不合法,故有语法错 C) 98,cD) 格式描述和输出项不匹配,输出无定值6为了避免嵌套的条件语句if-else的

11、二义性,C语言规定:else与_B_配对。A) 缩排位置相同的ifB) 其之前最近的ifC) 其之后最近的ifD) 同一行上的if7若给定条件表达式(M)?(a+): (a-),则其中表达式M_C_A) 和(M=0)等价B) 和(M=1)等价C) 和(M!=0)等价D) 和(M!=1)等价8若有说明语句char s=092; 则该语句_B_A) 使s的值包含1个字符B) 说明不合法,s的值不确定C) 使s的值包含4个字符D) 使s的值包含3个字符9设a=1,b=2,c=3,d=4,则表达式:ab?a:cd?a:d的结果为_D_A) 4B) 3C) 2D) 110有如下的变量定义:int i=8

12、,k,a,b;unsigned long w=5;double x=1.42,y=5.2;则以下符合C语言语法的表达式是_A_A) a+=a-=(b=4)*(a=3)B) x%(-3)C)a=a*3=2D) y=float(i)11有以下变量定义:int k=7,x=12;则下列值为3的表达式是_d_A) x%=(k%=5)B) x%=(k-k%5)C) x%=k-k%5D) (x%=k)-(k%=5)12设 int a=3 ; 则表达式 a1 的运算结果和a的值分别是_b_A) 0和2 B) 0和3 C) 1和2 D) 1和313假定所有变量均已正确定义,下列程序段运行后x的值是_d_ ok

13、1=1;ok2=2;ok3=3;x=15; if(!ok1) x-; else if(ok2) if(ok3) x=3; else x=4;A) 14B) 4C) 15D) 314下面程序的输出结果是_a_main()int x=1,a=0,b=0; switch(x) case 0 :b+; case 1 :a+; case 2 :a+;b+; printf(“a=%d,b=%dn”,a,b);A) a=2,b=1B) a=1,b=1C) a=1,b=0D) a=2,b=215. 两次运行下面的程序,如果从键盘上分别输入6和4,则输出结果分别是_a_ main( ) int x; scanf

14、(%d,&x); if(x+5)printf(%d,x); else printf(%dn,x-); A) 7和5 B) 6和3 C) 7和4 D) 6和416有定义:int a=1,b=3,c=5,d=4,x; 则执行完下面一段程序后x的值是 _b_。if(ab)if(cd) x=1;else if(ac) if( b=0|b=0)&(a0|b=0&b=0)&(a0&b0)&(a+b018当a=3,b=2,c=1时,表达式f=abc的值是 _0_ 。19当c的值不为0 时,在下列选项中能正确将c的值赋给变量a、b的是_c_。A) c=b=aB) (a=c)|(b=c)C) (a=c)&(b=

15、c)D) a=c=b20下面程序程序后输出结果是_b_。main()int a=3,b=2,c=1,t; if(abc) t=1; else if(abc) t=0; else t=-1; printf(%dn,t);A) 1 B) 0 C) -1 D) 不确定的数21. 以下程序运行后的输出结果是_。main()int a=3,b=4,c=5,t=99; if(abc,cb) t=b;b=a;a=t; printf(%d %d %dn,a,b,c); 3 5 322. 以下程序运行后的输出结果是_。main()int x=1,y=0,a=0,b=0; switch(x) case 1:swi

16、tch(y)case 0:a+;break; case 1:b+;break; case 2:a+;b+;break; printf(%d %dn,a,b); 2 1 23有以下程序main( ) int i=1,j=1,k=2; if(j+|k+)&i+) printf( %d,%d,%dn,i,j,k ); 执行后输出结果是_c_。A) 1,1,2 B) 2,2,1 C) 2,2,2 D) 2,2,324以下程序执行后输出结果是_a_。main( ) int a=3,b=4,c=5,d=2; if(ab) if(bc) printf(%d,d+1); else printf(%d,+d+1

17、); printf(%dn,d); A) 2 B) 3 C) 43 D) 4425以下程序执行后输的结果是_-4_ 。main( ) int n=0,m=1,x=2; if(!n) x-=1; if(m) x-=2; if(x) x-=3;printf(%dn,x);第六章循环控制问题与思考1对下面程序段描述正确的是_c_。 int k=10; while(k=0) k=k-1;A) while循环执行10次 B) 循环是无限循环C) 循环体语句一次也不执行 D) 循环体语句执行一次2语句while(!E);中的表达式!E等价于_a_.A) E=0 B) E!=1 C) E!=0 D) E=1

18、3下面程序段的运行结果是_c_.int n=0;while(n+=2); printf(%d,n);A) 2 B) 3C) 4 D) 有语法错4下面程序的运行结果是_c_. #include main() int num=0; while(num=2) num+; printf(%dn,num); A)1 B)1 C) 1 D) 1 2 2 2 3 3 45以下程序段_c_. x=-1; do x=x*x; while(!x); A) 是死循环 B) 循环执行二次 C) 循环执行一次 D) 有语法错误6如下程序段 _b_.int x=3;doprintf(%dn,x-=2);while(!(-

19、x); A) 输出的是1 B) 输出的是1和-2 C) 输出的是3和0 D) 是死循环7下面程序的运行结果是_d_.#includemain()int y=10; doy-;while(-y); printf(%dn,y-); A) -1 B) 1 C) 8 D) 08若i为整型变量,则以下循环执行次数是_b_. for(i=2;i=0;)printf(%d,i-);A) 无限次 B) 0次 C) 1次 D) 2次9执行语句for(i=1;i+4; ); 后变量i的值是_c_.A) 3 B) 4 C) 5 D) 不定10以下正确的描述是_b_.A) continue语句的作用是结束整个循环的执

20、行B) 只能在循环体内和switch语句体内使用break语句C) 在循环体内使用break语句或continue语句的作用相同D) 从多层循环嵌套中退出时,只能使用goto语句11. 运行下面程序时,从键盘输入20357,则下面程序的运行结果是_。#includemain( )int c; while(c=getchar()!=n) switch(c-2)case 0: case 1: putchar(c+4); case 2: putchar(c+4); break; case 3: putchar(c+3); default: putchar(c+2); break; putchar(n

21、); 12.下面程序段是从键盘输入的字符串中统计数字字符的个数,用换行符结束循环。请填空。 int n=0,c; c=getchar(); while(_) if(_)n+; c=getchar(); 13下面程序的功能是用辗转相除法求两个正整数的最大公约数。请填空。 #include main() int r,m,n; scanf(%d%d,&m,&n); if(mn)_; /* 保证m总是是大于n */ r=m%n; while(r)m=n;n=r;r=_; printf(%dn,n); 14下面程序的运行结果是_. #include main() int a,s,n,count; a=2

22、;s=0;n=1;count=1; while(count=7)n=n*a;s=s+n;+count; printf(s=%d,s); 15下面程序段的运行结果是_.i=1;a=0;s=1;doa=a+s*i;s=-s;i+;while(i=10);printf(a=%d,a);16下面程序段的运行结果是_. i=1;s=3; dos+=i+; if(s%7=0)continue; else +i; while(s15); printf(%d,i);17下面程序用于打印出所有的“水仙花数”。所谓“水仙花数”是指一个3位数,其各位数字立方和等于该数本身。完成程序。main( )int i,a,b

23、,c; for(i=100;i1000;i+ )a = i/100; b =_; c = i%10; if(_) printf( %d , i);l 若运行以下程序时,从键盘输入2473,则下面程序的运行结果是_#include void main ( ) int c ; while ( ( c = getchar ( ) ) != n ) switch ( c - 2 ) case 0: case 1 : putchar ( c + 4 ) ; case 2 : putchar ( c + 4 ) ; break ; case 3 : putchar ( c + 3 ) ; default

24、: putchar ( c + 2 ) ; break ; printf (n) ; A : 6 6 8 9 7 7B : 6 6 8 9 6 6C : 6 6 7 7 8 7 7 7D : 6 6 8 8 7 6 6解:668977 c=2 进 case c-2 - case 0: case 1: 打 c+4 输出 6 (2+4=6) 进 case 2: 打 c+4 输出 6 (2+4=6), break 退出 66 c=4 进 case c-2 - case 2: 打 c+4 输出 8 (4+4=8), break 退出 8 c=7 进 case c-2 - case 5: default

25、: 打 c+2 输出 9,退出 9 c=3 进 case c-2 - case 1: 打 c+4 输出 7 进 case 2: 打 c+4 输出 7 (3+4=7), break 退出 77第七章 数组问题与思考1. 定义如下变量和数组 :int k ;int a33= 1, 2, 3, 4, 5, 6, 7, 8, 9 ;则下面语句的输出结果是( a )for(k=0;k3;k+) printf(%d,ak2-k);A、357B、369 C、 159D、 1472. 执行下面的程序段后,变量k中的值为(a)int k=3,s2;s0=k;k=s1*10;A、不定值B、33C、30D、103.

26、 设有数组定义:char array =China; 则数组 array所占的空间为(c )A、4个字节 B、5个字节 C、6个字节D、7个字节4. 如下程序的输出结果是( d )main( ) int n5=0,0,0,i,k=2;for(i=0;ik;i+)ni=ni+1;printf(%dn,nk);A、不确定的值B、2C、1D、05. 有如下程序main( ) int a33=1,2,3,4,5,6,i,j,s=0;for(i=1;i3;i+)for(j=0;j=i;j+)s+=aij;printf(%dn,s);该程序的输出结果是(a)A、18B、19C、20D、216. 以下程序的

27、输出结果是(c)main( ) inti,x33=1,2,3,4,5,6,7,8,9;for(i=0;i3;i+)printf(%d,xi2-i);A、1,5,9,B、1,4,7,C、3,5,7,D、3,6,9,7. 当执行下面的程序时,如果输入ABC,则输出结果是(a)#include stdio.h#include string.hmain( ) char ss10=1,2,3,4,5;gets(ss);strcat(ss,6789);printf(%sn,ss);A、ABC6789B、ABC67C、12345ABC6D、ABC4567898以下程序段的输出结果是(a )char s =

28、141141abct;printf(%dn,strlen(s);A、9B、12C、13D、149. 下面是对s的初始化,其中不正确的是( d )A、char s5=“abc” ;B、char s5=a,b,c;C、char s5=“”; D、char s5=”abcde”10. 以下程序的输出结果是_main( )char s =abcdef; s3= 0;printf(%sn,s);11. 下列程序段的输出结果是_main( ) char b=Hello,you;b5=0;printf(%s n, b );12. 在C语言中,二维数组元素在内存中的存放顺序是_13. 设有定义语句 “ int

29、 a34=1,2,3 ” ,则a11值为_,a21的值为_ 14. 若在程序中用到 “ putchar() ” 函数时,应在程序开头写上包含命令_ ,若在程序中用到 “ strlen() ” 函数时,应在程序开头写上包含命令_ #include_15. 下面程序的功能是输出数组s中最大元素的下标,请填空。 main() int k,p; int s=1,-9,7,2,-10,3; for(p=0,k=p;psk) _ ; printf(%dn,k); 16. 以下程序执行时输入Language Programming的结果是_str=Language_ #include main() char

30、 str30; scanf(%s,str); printf(str=%sn,str); 17. 以下程序可把输入的十进制长整型数以十六进制数的形式输出,请填空。 main() char b17=0123456789ABCDEF; int c64,d,i=0,base=16; long n; printf(Enter a number:n); scanf(%1d,&n); doci= _;i+;n=n/base;while(n!=0); printf(Transmite new base:n); for (-i;i=0;-i)d=ci;printf(%c,b _d_ ; 18. 以下数组定义中,

31、错误的是( c )A、 int a=1,2,3;B、 int a5=1,2,3;C、 int a3=1,2,3,4;D、 int a5,b;19以下数组定义中,正确的是( b )A、 int n=4,an=1,2,3,4; B、 int a2=1,2,3,4;C、 int a2=1,2,3,4;D、 int a=1,2,3,4;20.设有如下定义:int a810;在C中一个整数占用4字节,设a的起始地址为1000,则a11的地址是( d )A、 1000B、 1004C、 1036 D、 104421. 有数组定义:int a 3=1,2,3,4,5,6,7,8,9,则a12的值是( c )

32、A、 2B、 5C、 6D、 822.设已定义 char str6=a,b,0,c,d,0; 执行语句 printf(%s,str) 后,输出结果为( b )A、 aB、 abC、 abcdD、 ab0cd023引用数组元素时,数组元素下标不可以是( c )A、 字符常量B、 整型变量 C、 字符串D、 算术表达式24下面程序段的运行结果是( a )void main()char a=abcd,b=123;strcpy(a,b);printf(%sn,a);A、 123 B、 123dC、 abcd D、 abcd12325下面程序段的运行结果是( )void main()char a=123

33、,b=abcd;if(ab) printf(%sn,a);else printf(%sn,b);A、 123 B、 编译时出错C、 abcdD、 运行时出错第八章 函数 问题与思考1. 有如下程序#includelong fib( int n)if(n2) return(fib(n-1)+fib(n-2);else return(2);void main( ) printf(%dn,fib(3);该程序的输出结果是(B)A、2B、 4C、 6D、8 2. 在C语言中,函数的隐含存储类别是(A)A、 autoB、 staticC、 externD、 无存储类别3. 以下所列的各函数首部中,正确的

34、是(C)A、 void play(var:Integer,var b:Integer)B、 void play(int a,b)C、 void play(int a,int b)D、 Sub play(a as integer,b as integer)4. 以下程序的输出结果是(C)A、 0B、 29C、 31D、 无定值fun(int x,int y,int z) z=x*x+y*y;main( ) int a=31;fun(5,2,a);printf(%d,a);5. 以下程序的输出结果是(A)f(int b ,int m,int n) int I,s=0; for(i=m;in;i=i

35、+2) s=s+bi; return s; main( ) int x,a =1,2,3,4,5,6,7,8,9; x=f(a,3,7); printf(%dn,x); A、10B、18C、8D、156. 以下程序的输出结果是(A)A、1B、2C、3D、4long fun( int n) long s;if(n=1 | n=2)s=2;else s=n-fun(n-1);return s;main( ) printf(%ldn,fun(3); 7. 以下程序的输出结果是(D)int f( ) static int i=0; int s=1; s+=i;i+; return s; main( )

36、 int i,a=0; for(i=0;i5;i+) a+=f(); printf(%dn,a); A、20B、24C、25D、158. 以下程序的功能是调用函数fun计算:m=1-2+3-4+9-10,并输出结果。请填空。intfun(intn)intm=0,f=1,i;for(i=1;i=n;i+)m+=i*f;f=_-f_;returnm;main()printf(m=%dn,_fun(10)_);9. 以下程序输出的最后一个值是_120_int ff(int n) static int f=l;f=f*n;return f;main( ) int i;for(i=1;i=5;i+ ) printf(%dn,ff(i);10. 以下函数的功能是:求x的y次方,请填空。double fun( double x,int y) int i;double z;for(i=1, z=x; iy;i+) z

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 教育专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服