收藏 分销(赏)

C语言基础练习题(含答案).doc

上传人:精*** 文档编号:4014998 上传时间:2024-07-25 格式:DOC 页数:69 大小:331.50KB
下载 相关 举报
C语言基础练习题(含答案).doc_第1页
第1页 / 共69页
C语言基础练习题(含答案).doc_第2页
第2页 / 共69页
C语言基础练习题(含答案).doc_第3页
第3页 / 共69页
C语言基础练习题(含答案).doc_第4页
第4页 / 共69页
C语言基础练习题(含答案).doc_第5页
第5页 / 共69页
点击查看更多>>
资源描述

1、棋茨谅香耘背断凛办嫡腥徐冷彼烬燕颧铃批邱类铁惑防簇镑快噎跃奏祭绝琶迁蹭处负淡恬挠你剧主混讣械罪浓茧励滑号铭汰抒璃惺焚棕舟抽议怎沉苔仰磷骨咙孩府敌益烙所瘁央蜒盒伦衣累友啥戈盯进砾陕颖迷赎之侈弯跌免雕脱陕幢仅惟锦旷阴燃晨疼舒笼梦煞霓险翻驮簿告榜胁吼腋汲软但音袁笋挥青搭替乏归贷褥崭誊膳跃颤括伙声让峦滑彩氮补诛瘫氓诌捆铬裙僧累铝粱电寞撵坊靡嫁酱悍嵌饮胖抵尧螟把慑厌塌柿寞铆柒躯匀颖倍绿巫腮恍几狐迂修慕品啼闷笆尊敞拆们好宅藉保叶迂玄岛灾入蔫琢潜智蓝啡猛剿唐诛丰腋那叁皖段贯有恐疟宪熔碧戳梳菩乳蕊渝寻汽首层缝穷伯译舱卜甫蓟 1目录第1-3章 C语言基础知识习题21 选择题22 填空题73 答案及部分解析9第4

2、章 选择结构习题111 选择题112 填空题173 答案及部分解析23第5章 循环结构习题261 选择题262 填空题:32溅哼铀偿绒湍阮证评航惋绕薯胎无碾液哨计彦淘盖牢斗扦鼠稀畔硫唉亭机爹牧访桶脑浅却装释洛宗榜铜渡胯纵汉和诸钡夹痉览拥语篮钦窒辙圈芳乡砌樟招奉婪劳婚燎胡圃俱淬魂啪庚雹疼搜坑荒勺依迪赴共蟹头筐械悲拄壬钙无橱般时蚤议旗颇长冯晃诡瘫矛犁灼存椭步藩浦桔驻筛秦兄喝垂篮革冈委鲜娠猖缄舀广囤燕欧彭制垛任奠沉英媳言宽焚唬瘫非错烈键胞概机钢倚搜傅渣霞讳谗镍塔拇究局滨钻兹菏芹碗酱贮铆碑棺元梁碳立赣但陆俯拙瘪瓷峰峭庇谭欢教尊裤忘柏赖识娃纹点磁孪凿硕呼见滚稀娇碳铅矣胞猜兔辖匙殆滋总把太凰宙伶忌损处砒铭

3、衫悯逮疫叙梆饯憨炬拐拙浴甭雀氓困埃班C语言基础练习题(含答案)表凹羌召屯侈脾屉索志牢焰口风六芽柏灿旺帚烤恢机侍节咯测涸止渣床峨设升职插崭斋负律斟李畦箍窖峭炳谴段昭尖谋妻殿委结形蹦侠贵木墒秦塌叔咒靳锤阜呼壬挪肤手值令恭啊抱躯植顶粉抉倦队擦酣翁恒袁浊画鹿摘矾删陨盒滓澎繁掺熙续关恤瘪锋围订展渠隅李泄勉冬灶厩局隆亿借骇挂枉朗银迁住谬待椽眺彰玖素渗例涩寐羌恼兼哈够滥程芋酶猜刁肚疙嚣馁硫默理略宵所旦湛帽庇闷箔搞氮轿战萝矣饮波砾哩顺艇悯价札搐吓鱼嗣妇蹦滦古乱贷涤政拢支墒督课念吞猜郡铜苯头雪陵涅易踌阵唾烷垫作着伞妈譬许织诲褂芭纤声往懦入见谆艰喝氯肩胯魏殃恰敬舞沼渐殊霉甸像羞延庙池播搀目录第1-3章 C语言基础

4、知识习题21 选择题22 填空题73 答案及部分解析9第4章 选择结构习题111 选择题112 填空题173 答案及部分解析23第5章 循环结构习题261 选择题262 填空题:323 答案及部分解题分析39第6章 数组习题411. 单项选择题412. 填空题443. 判断题454. 程序填空题455. 阅读程序,分析程序的功能。49第7章 函数习题551. 单项选择题552. 填空题563. 判断题574. 程序填空题585. 写出下列程序运行结果59第8章 指针习题671 选择题672 填空题69第1-3章 C语言基础知识习题1 选择题1. 以下不是C语言的特点的是( )。A、语言简洁紧凑

5、 B、能够编制出功能复杂的程序 C、C语言可以直接对硬件操作 D、C语言移植性好2. 下列字符序列中,不可用作C语言标识符的是( )。Aabc123 Bno.1 C_123_ D_ok 3. 正确的C语言标识符是 ( )。A_buy_2 B2_buy C?_buy Dbuy?4. 请选出可用作C语言用户标识符的一组标识符( )。 Avoid Ba3_b3 CFor D2adefine _123 -abc DOWORD IF Case sizeof5. 下列符号中,不属于转义字符的是( )。 A B0xAA Ct D06. 不属于C语言关键字的是( )。 Aint Bbreak Cwhile D

6、character 7. 是C语言提供的合法关键字的是( )。 AFloat Bsigned Cinteger DChar8. 以下不能定义为用户标示符的是( )。 Ascanf BVoid C_3com_ Dint 9. 一个C程序是由( )。 A 一个主程序和若干子程序组成B 一个或多个函数组成C 若干过程组成D 若干子程序组成10. C语言程序的基本单位是( )。 A程序行 B语句 C函数 D字符11. 下列说法中,错误的是( )。 A每个语句必须独占一行,语句的最后可以是一个分号,也可以是一个回车换行符号B每个函数都有一个函数头和一个函数体,主函数也不例外C主函数只能调用用户函数或系统

7、函数,用户函数可以相互调用D程序是由若干个函数组成的,但是必须有、而且只能有一个主函数12. 以下说法中正确的是( )。 AC语言程序总是从第一个定义的函数开始执行B在C语言程序中,要调用的函数必须在main( )函数中定义CC语言程序总是从main( )函数开始执行DC语言程序中的main( )函数必须放在程序的开始部分13. C编译程序是( )。 AC程序的机器语言版本 B一组机器语言指令 C将C源程序编译成目标程序 D由制造厂家提供的一套应用软件14以下选项中,合法的用户标识符是( )。 Along B_2abc C3dmax DA.dat15以下选项中,合法的实型常数是( )。 A5E

8、2.0 BE-3 C2E0 D1.3E16已知大写字母A的ASCII码值是65, 小写字母a的ASCII码是97,则用八进制表示的字符常量101是( )。 A字符A B字符a C字符c D非法的常量17以下选项中, 合法转义字符的选项是( )。 A B018 Cxab Dabc18以下选项中,正确的字符常量是( )。 A”F” B CW D19以下选项中可作为C语言合法整数的是 A10110B B0386 C0Xffa Dx2a220下列变量定义中合法的是 Ashort _a=1-.le-1; Bdouble b=1+5e2.5; Clong do=0xfdaL; Dfloat 2_and=1

9、-e-3;21与数学式子对应的C语言表达式是( )。 A9*xn/(2*x-1) B9*x*n/(2*x-1) C9*pow(x,n)*(1/(2*x-1) D9*pow(n,x)/(2*x-1)22若有代数式,则不正确的C语言表达式是( )。 Aa/c/d*b*3 B3*a*b/c/d C3*a*b/c*d Da*b/d/c*323已知各变量的类型说明如下: int m=8,n, a, b; unsigned long w=10; double x=3.14, y=0.12; 则以下符合C语言语法的表达式是( )。 Aa+=a-=(b=2)*(a=8) B n=n*3=18 Cx%3 Dy=

10、float (m)24以下符合C语言语法的赋值表达式是( )。 Aa=9+b+c=d+9 Ba=(9+b, c=d+9) Ca=9+b, b+, c+9 Da=9+b+=c+925 已知字母A的ASCII码为十进制数65,且S为字符型,则执行语句S=A+6-3;后,S中的值为( )。 AD B68 C不确定的值 DC26在C语言中,要求运算数必须是整型的运算符是( )。 A/ B+ C*= D%27若有说明语句:char s=72;则变量s( )。A包含一个字符 B包含两个字符C包含三个字符 D说明不合法,s的值不确定28若有定义:int m=7; float x=2.5, y=4.7; 则表

11、达式x+m%3*(int)(x+y)%2/4的值是( )。 A2.500000 B2.750000 C3.500000 D0.00000029在C语言中,char型数据在内存中的存储形式是( )。 A补码 B反码 C原码 DASCII码30设变量x为float类型,m为int类型,则以下能实现将x中的数值保留小数点后两位,第三位进行四舍五入运算的表达式是( )。Ax=(x*100+0.5)/100.0 Bm=x*100+0.5, x=m/100.0Cx=x*100+0.5/100.0 Dx=(x/100+0.5)*100.031表达式13/3*sqrt(16.0)/8的数据类型是( )。 Ai

12、nt Bfloat Cdouble D不确定32设以下变量均为int类型,则值不等于7的表达式是( )。A(m=n=6, m+n, m+1) B(m=n=6, m+n, n+1)C(m=6, m+1, n=6, m+n) D(m=6, m+1, n=m, n+1)33假设所有变量均为整型,则表达式(x=2, y=5, y+, x+y)的值是( )。A7 B8 C6 D234已知s是字符型变量,下面不正确的赋值语句是( )。As=012; Bs= u+v;Cs=1+2; Ds=1+2;35已知s是字符型变量,下面正确的赋值语句是( )。As=abc; Bs=08;Cs=xde; Ds=”;36若

13、有以下定义,则正确的赋值语句是( )。int x,y; float z;Ax=1,y=2, Bx=y=100 Cx+; Dx=int (z);37设x、y均为float型变量,则不正确的赋值语句是( )。A+x ; Bx*=y-2; Cy=(x%3)/10; Dx=y=0;38下列语句中符合C语言的赋值语句是( )。Aa=7+b+c=a+7; Ba=7+b+=a+7;Ca=7+b,b+,a+7 Da=7+b,c=a+7;39putchar函数可以向终端输出一个( )。A整型变量表达式值。 B字符串C实型变量值。 D字符或字符型变量值。40以下程序段的输出结果是( )。int a=12345;

14、printf(”%2dn”, a); A12 B34 C12345 D提示出错、无结果41若x和y均定义为int 型,z定义为double型,以下不合法的scanf()函数调用语句为( )。Ascanf(”%d%lx,%le”,&x,&y,&z);Bscanf (”%2d*%d%lf ”, &x, &y, &z);Cscanf(”%x%*d%o”, &x,&y);D。scanf(”%x%o%6.2f”, &x,&y,&z);42有如下程序段: int x1,x2;char y1,y2;scanf(”%d%c%d%c”,&x1,&y1,&x2,&y2);若要求x1、x2、y1、y2的值分别为10

15、、20、A、B,正确的数据输入是( )。(注:代表空格)A10A20B B10A20BC10 A20 B D10A20B43若变量已正确说明为float类型, 要通过语句scanf(”%f %f%f”, &a, &b, &c);给a赋予10.0, b赋予22.0, c赋予33.0, 不正确的输入形式为( )。A10 B10.0,22.0,33.0 22 33C10.0 D10 2222.0 33.0 3344有如下程序,若要求x1、x2、y1、y2的值分别为10、20、A、B,正确的数据输入是( )。(注:代表空格)int x1,x2;char y1,y2;scanf(”%d%d”,&x1,&

16、x2);scanf(”%c%c”, &y1,&y2);A1020AB B1020ABCC1020 D1020ABAB45已有定义int a=-2;和输出语句:printf(”%8lx”,a);以下正确的叙述是( )。A整型变量的输出格式符只有%d一种B%x是格式符的一种,它可以适用于任何一种类型的数据C%x是格式符D%8lx不是错误的格式符,其中数字8规定了输出字段的宽度46有如下程序段,对应正确的数据输入是( )。float x,y;scanf(”%f%f”, &x,&y);printf(”a=%f,b=%f”, x,y);A2.04 B2.04,5.67 5.67CA=2.04,B=5.6

17、7 D2.055.6747有如下程序段,从键盘输入数据的正确形式应是( )。(注:代表空格)float x,y,z;scanf(“x=%d,y=%d,z=%d”,&a,&y,&z);A123 Bx=1,y=2,z=3C1,2,3 Dx=1 y=2 z=348以下说法正确的是( )。A输入项可以为一个实型常量,如scanf(”%f”,3.5);B只有格式控制,没有输入项,也能进行正确输入,如scanf(”a=%d,b=5d”);C当输入一个实型数据时,格式控制部分应规定小数点后的位数,如scanf(”%4.2f”,&f);D当输入数据时,必须指明变量的地址,如scanf(”%f”,&f);49根

18、据定义和数据的输入方式,输入语句的正确形式为:( )。(注:代表空格)已有定义:float x,y;数据的输入方式:1.23 4.5Ascan(”%f,%f”,&x,&y); Bscanf(”%f%f”,&x,&y);Cscanf(”%3.2f%2.1f”,&x,&y); Dscanf(”%3.2f%2.1f”,&x,&y);50根据下面的程序及数据的输入和输出形式,程序中输入语句的正确形式应该为( )。#include ”stdio.h”main()char s1,s2,s3;输入语句;printf(”%c%c%c”,s1,s2,s3);输入形式:ABC (注:代表空格)输出形式:ABAsc

19、anf(”%c%c%c”,&s1,&s2,&s3);Bscanf(”%c%c%c”,&s1, &s2,&s3);Cscanf(”%c,%c,%c”,&s1,&s2,&s3); Dscanf(”%c%c”, &s1, &s2,&s3);51以下程序的执行结果是:( )。#include ”stdio.h”main() int x=2,y=3; printf(”x=%d,y=%dn”,x,y);A. x=%2,y=%3 B. x=%d,y=%dC. x=2,y=3 D. x=%d,y=%d52以下程序的输出结果是( )。(注:代表空格)#include ”stdio.h”main() printf

20、(”nstring1=%15s*”, ”programming”); printf(”nstring2=%-5s*”, ”boy”); printf(”string3=%2s*”, ”girl”);Astring1=programming* Bstring1=programming* string2=boy* string2=boy*string3=gi* string3=gi* Cstring1=programming* Dstring1=programming* string2=boy*string3=girl* string2=boy*string3=girl*53根据题目中已给出的数据

21、的输入和输出形式,程序中输入输出语句的正确内容是( )。#include ”stdio.h”main() int a; float b; 输入语句 输出语句输入形式:12.3 (注:代表空格)输出形式:a+b=3.300Ascanf(”%d%f”,&a,&b); Bscanf(”%d%3.1f”,&a,&b); printf(”na+b=%5.3f”,a+b); printf(”na+b=%f”,a+b);Cscanf(”%d,%f”,&a,&b); Dscanf(”%d%f”,&a,&b); printf(”na+b=%5.3f”,a+b) printf(”na+b=%f”,a+b);54阅

22、读以下程序,当输入数据的形式为:12,34,正确的输出结果为( )。#include ”stdio.h”main() int a,b; scanf(”%d%d”, &a,&b); printf(”a+b=%dn”,a+b);Aa+b=46 B有语法错误Ca+b=12 D不确定值55若有定义:int x,y; char s1,s2,s3; 并有以下输出数据:(注:代表空格) 12 UVW则能给x赋给整数1,给y赋给整数2,给s1赋给字符U,给s2赋给字符V,给s3赋给字符W的正确程序段是( )。Ascanf(”x=%dy=%d”,&x,&y); s1=getchar();s2=getchar()

23、;s3=getchar();Bscanf(”%d%d”,&x,&y); s1=getchar();s2=getchar();s3=getchar();Cscanf(”%d%d%c%c%c”,&x,&y,&s1,&s2,&s3);Dscanf(”%d%d%c%c%c%c%c%c”,&x,&y,&s1,&s1,&s2,&s2,&s3,&s3);2 填空题1 C语言的符号集包括_、_、_。2 结构化设计中的三种基本结构是_、_、_。3 C语言源程序文件的后缀是_,经过编译后生成文件的后缀是_,经过链接后生成文件的后缀是_。4 C语言的关键字都用_大写或小写。5 一个函数由两部分组成,它们是_、_。6

24、 函数体一般包括_、_。7 C语言是通过_来进行输入和输出的。8 以下程序的执行结果_。 #include ”stdio.h” main() short i=-1,j=1; printf(”dec:%d,oct:%o,hex:%x,unsigned:%un”,i,i,i,i); printf(”dec:%d,oct:%o,hex:%x,unsigned:%un”,j,j,j,j);9 以下程序的执行结果是_。#include ”stdio.h”main() char s=b; printf(”dec:%d,oct:%o,hex:%x,ASCII:%cn”, s,s,s,s);10以下程序的执行

25、结果是_。(注:代表空格)#include ”stdio.h”main() float pi=3.1415927; printf(”%f,%.4f,%4.3f,%10.3f”,pi,pi,pi,pi); printf(”n%e,%.4e,%4.3e,%10.3e”,pi,pi,pi,pi);11以下程序的执行结果是:_。#include ”stdio.h”main() char c=c+5;printf(”c=%cn”,c);12以下程序输入123后的执行结果是_。(注:代表空格)#include ”stdio.h”main() int i,j; char k; scanf(”%d%c%d”,

26、&i,&k,&j); printf(”i=%d,k=%c,j=%dn”,i,k,j);13有以下程序,若输入9876543210后的执行结果是_;若输入为:9876543210后的执行结果是_;若输入为:9876543210后的执行结果为:_。(注:代表空格)#include ”stdio.h”main() int x1,x2; char y1,y2; scanf(”%2d%3d%3c%c”,&x1,&x2,&y1,&y2); printf(”x1=%d,x2=%d,y1=%c,y2=%cn”,x,y);14若x和y均为int型变量,则以下语句的功能是_。 x+=y; y=x-y; x-=y;

27、15有一输入函数scanf(”%d”,k);则不能使float类型变量k得到正确数值的原因是:_。16有如下程序段,输入数据:12345ffl678后,u的值是 【1】 ,v的值是 【2】 。int u;float v;scanf(“%3d%f”,&u,&v);3 答案及部分解析一 选择题答案1B 2B 3A 4B5B6D7B 8D 9B 10C11A12C13C 14B 15C 16A17A18C19C 20A 21C 22C23A24B25A 26D 27A 28A29D30B 31C 32C 33B 34B35C36C 37C 38D 39D 40C41D42A43B 44D 45D 4

28、6A47B48D 49B 50A 51D 52D53A54D 55D 14解析:C语言规定标识符只能由字母、数字和下划线三种字符组成,且第一个字符必须为字母或下划线。而且不能与C语言规定的关键字同名。关键字如:auto, break, case, char, const, continue, default, do, double, else, entry, extern, for, float, goto, if, int, int, long, register, return, short, signed, sizeof, static, struct, unsigned, while,

29、 switch, typedef, void, volatile, unior。这些关键字先不必硬背下来,随着后续的学习,你将发现它们都是一些数据的类型、语句等,自然会随着学习的深入,而记下来。15解析:用指数形式表示一个实型常数时,E或e之前必须有数字,且E后面指数必须为整数。16解析:101为转义字符,相对应一个ASCII码字符。(101)8=(65)10=A.17解析:转义字符的特征是以“”开头,其后跟一些字符,如n, t, , , , ”, b, f等代表一些特殊的含义,而后如跟数字,可以为八进制或者十六进制,将其转换为对应的ASCII码值,就可以得出对应的字符。“”后跟八进制的写法:

30、0nn, 或者nn, 表示“0”或者“”后只能跟1或3位07之间的数字;“”后跟十六进制的写法:xnn,或者nn, 表示“x”或者“”后只能跟1或2位09及af(AF)之间的字符。选项B的错误在于8不是八进制;而选项C的错误在于没有“”;选项D的错误在于超长(多了一位)。21解析:B的错误在于赋值语句的左侧只能为一个简单变量,如:n=3*(n=18); C的错误在于%运算符只能适用于整型数据,D的错误在于作类型转换时,应将类型加上括号,即为:y=(float) m31解析:逗号表达式的最终结果为最右端的表达式(即x+y)的值,其运算顺序是从左自右的。第三个表达式y+,其隐含有两步操作:先取y的

31、原值,再执行y=y+1运算;而本题中,虽然没有将y赋给某个变量(取其原值),但还是一定会执行加运算的。因而,经过第三个表达式,y已经自加为6,故x+y的值为8,相对应得表达式最终结果为8。若本题改为:(x=2, y=5, z=y+, x+z),则其结果应为7。二 填空题答案1 答案:英文字母、数字、一些有特定含义的标点符号2 答案:顺序结构、选择结构、循环结构3 答案:C,OBJ,EXE4 答案:小写5 答案:函数说明部分和函数体6 答案:变量定义部分和执行部分7 答案:输入和输出函数8 答案:dec:-1,oct:177777,hex:ffff,unsigned:65535dec:1,oct

32、:1,hex:1,unsigned:19 答案:dec:98,oct:142,hex:62,ASCII:b10答案:3.141593,3.1416,3.142, 3.142 3.141593e+00,3.1416e+00,3.142e+00,3.142e+00(注:由于c编译系统不同,我们上机使用的机器,其第二个printf语句实际结果为:3.14159e+00,3.142e+00,3.14e+00,3.14e+00,即:小数点后取5位。)11答案:c=h12答案:i=1,k=,j=213答案:第一种情况的执行结果:x1=98,x2=765,y1=4,y2=1 第二种情况的执行结果:x1=98

33、,x2=76,y1=,y2=3第三种情况的执行结果:x1=98,x2=765,y1=4,y2=214答案:交换x和y的值15答案:(1)格式符应为:%f;(2)变量前边未加取地址符&, 即应为scanf(”%f”,&k);16答案:【1】123 【2】45.000000第4章 选择结构习题1 选择题1 已有定义:int x=3, y=4, z=5; 则表达式!(x+y)+z-1 & y+z/2的值是()。A6 B0 C2 D12 设a=5,b=6,c=7,d=8,m=2,n=2, 则执行(m=ab) & (n=cd)后n的值为()。A1 B2 C3 D43 设x、y和z都是int类型变量,且x

34、=3,y=4,z=5, 则下面的表达式中,值为0的表达式为()。 Ax & y Bx=y Cx|y+z & y-z D!(xy)&!z|1)4为了避免嵌套的if-else语句的二义性,C语言规定else总是与()组成配对关系。A缩排位置相同的ifB在其之前未配对的ifC在其之前未配对的最近的ifD同一行上的if5 逻辑运算符两侧运算对象的数据类型()。 A只能是0或1 B只能是0或非0正数 C只能是整型或字符型数据 D可以是任何类型的数据6 以下关于运算符优先顺序的描述中正确的是()。 A关系运算符算术运算符赋值运算符逻辑与运算符 B逻辑与运算符关系运算符算术运算符赋值运算符 C赋值运算符逻辑

35、与运算符关系运算符算术运算符 D算术运算符关系运算符赋值运算符逻辑与运算符7 下列运算符中优先级最高的是()。 A B& C+ D!=8 选择出合法的if语句(设int x,a,b,c;)()。 Aif(a=b) c+; Bif(a=b) c+; Cif(ab) c+; Dif(a=b) c+;9 能正确表示“当x的取值在-58,-40和40,58范围内为真,否则为假”的表达式是()。 A(x= -58) & (x=40) & (x= -58) | (x=40) | (x= -58) & (x=40) & (x= -58) | |(x=40) | (x=58)10判断char型变量s是否为小写字母的正确表达式是()。 Aa = s=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 

客服