C语言程序设计基础例题.docx
- 文档编号:7406400
- 上传时间:2023-01-23
- 格式:DOCX
- 页数:58
- 大小:42.81KB
C语言程序设计基础例题.docx
《C语言程序设计基础例题.docx》由会员分享,可在线阅读,更多相关《C语言程序设计基础例题.docx(58页珍藏版)》请在冰豆网上搜索。
C语言程序设计基础例题
C语言程序设计基础习题集
一、选择填空
知识点1:
C程序的基本结构和算法基本概念
1.C语言程序的基本单位为_______。
A)程序行B)语句C)函数D)字符
2.用C语言编写的代码程序______。
A)可立即执行B)是一个源程序C)经过编译即可执行D)经过编译解释才能执行
3.以下叙述中正确的是______。
A)用C程序实现的算法必须要有输入和输出操作
B)用C程序实现的算法可以没有输出但必须要输入
C)用C程序实现的算法可以没有输入但必须要有输出
D)用C程序实现的算法可以既没有输入也没有输出
4.结构化程序由三种基本结构组成,三种基本结构组成的算法____。
A)可以完成任何复杂的任务B)只能完成部分复杂的任务
C)只能完成符合结构化的任务D)只能完成一些简单的任务
5.在一个C程序中______。
A)main函数必须出现在所有函数之前
B)main函数可以在任何地方出现
C)main函数必须出现在所有函数之后
D)main函数必须出现在固定位置
6.下列关于C语言的叙述错误的是______。
A) 大写字母和小写字母的意义相同
B) 不同类型的变量可以出现在同一个表达式中
C) 在赋值表达式中等号(=)左边的变量和右边的值可以是不同类型
D) 同一个运算符号在不同的场合可以有不同的含义
7.以下叙述中错误的是_______。
A)C程序中的#include和#define行均不是C语句
B)除逗号运算符外,赋值运算符的优先级最低
C)C程序中,j++;是赋值语句
D)C程序中,+、-、*、/、%号是算术运算符,可用于整型和实型数的运算
8.以下程序的功能是给r输入数据后计算半径为r的圆面积s。
程序在编译时出错,出错的原因是________。
main()
/*Beginning*/
{intr;floats;
scanf("%d",&r);
s=p*r*r;printf("s=%f\n",s);
}
A)注释语句书写位置错误B)存放圆半径的变量r不应该定义为整型
C)输出语句中格式描述符非法D)计算圆面积的赋值语句中使用了非法变量
知识点2:
数据和表达式计算
9.以下标识符中,不能作为合法的C语言用户定义标识符的是_____。
A)a3B)ifC)_123D)IF
10.以下数据中,不正确的数值或字符常量是_____。
A)011B)3.987E-2C)018D)0xabcd
11.若变量x、y已正确定义并赋值,以下符合C语言语法的表达式是______。
A)++x,y=x--B)x+1=yC)x=x+10=x+yD)double(x)/10
12.以下不正确的C语言标识符是____。
A) int B) a_1_2 C) ab1exe D) _x
13.以下是正确的C语言标识符是____。
A) #define B) _123 C) %d D) \n
14.下列不属于C语言关键字的是 ____。
A) default B) register C) enum D) external
15.正确的自定义标识符是_______。
A)ifB)iFC)a*bD)8bq
16.正确的自定义标识符是________。
A)a=2B)a+bC)nameD)default
17.C语言的关键字是________。
A)NULLB)fileC)includeD)typedef
18.C语言程序从main()函数开始执行,所以main函数要写在____。
A) 程序文件的开始 B) 程序文件的最后C) 它所调用的函数的前面 D) 程序文件的任何位置
19.在C语言中,错误的常数是______。
A)1E+0.0B)5C)0xafD)0L
20.在C语言中,错误的int类型的常数是____ 。
A) 32768 B) 0 C) 037 D) 0xAF
21.C语言中最简单的数据类型包括_______。
A)整型、实型、逻辑型B)整型、实型、字符型
C)整型、字符型、逻辑型D)整型,实型,逻辑型,字符型
22.下列变量定义中合法的是_______。
A)short_a=1-.le-1; B)double b=1+5e2.5;
C)long do=0xfdaL; D)float 2_and=1-e-3;
23.在C语言中,整数-8在内存中的存储形式是________ 。
A) 1111 1111 1111 1000 B) 1000 0000 0000 1000
C) 0000 0000 0000 1000 D) 1111 1111 1111 0111
24.C语言中字符型(char)数据在内存中的存储形式是____。
A) 原码 B) 补码 C) 反码 D) ASCII码
25.将字符g赋给字符变量c,正确的表达式是____ 。
A) c=\147 B) c="\147" C) c='\147' D) c='0147'
26.将空格符赋给字符变量c,正确的赋值语句是____。
A) c='\0' B) c=NULL C) c=0 D) c=32
27.字符串"\"EOF\n=-\61\""的长度是____。
A) 8 B) 9 C) 14 D) 非法字符串
28.字符串""的长度是____。
A) 0 B) 1 C) 2 D) 非法字符串
29.错误的转义字符是____。
A)'\091'B)'\\'C)'\0'D)'\''
30.以下两组字符中,不正确的C语言转义字符分别是_____。
A)'\\'B)'071'C)'\b'D)'\xaa'
31.若有以下程序段,c3中的值是_____。
intc1=1,c2=2,c3;
c3=c1/c2;
A)0B)1/2C)0.5D)1
32.设有intx=11;则表达式(x++*1/3)的值是_____。
A)3 B)4 C)11 D)12
33.以下选项中,值为1的表达式______。
A)1-"0" B)1-"\0" C)"1"-0 D)"\0"-"0"
34.设变量x为float型且已赋值,则以下语句中能将x中的数值保留到小数点后两位,并将第三位四舍五入的是_____。
A)x=x*100+0.5/100.0B)x=(x*100+0.5)/100.0
C)x=(int)(x*100+0.5)/100.0D)x=(x/100+0.5)*100.0
35.表达式3.6-5/2+1.2+5%2的值是______。
A)4.3B)4.8C)3.3D)3.8
36.已知 int a[3][2]={3,2,1};则表达式"a[0][0]/a[0][1]/a[0][2]"的值是____。
A) 0.166667 B) 1 C) 0 D) 错误的表达式
37.逗号表达式"(a=3*5,a*4),a+15"的值是____。
A) 15 B) 60 C) 30 D) 不确定
38.已知int x=(1,2,3,4);变量x的值是____。
A) 1 B) 2 C) 3 D) 4
39.如果int a=1,b=2,c=3,d=4;则条件表达式"a
a:
c c: d"的值是____。 A) 1 B) 2 C) 3 D) 4 40.与条件表达式"(n)? (c++): (c--)"中的表达式(n)等价的表达式是____。 A) (n==0) B) (n==1) C) (n! =0) D) (n! =1) 41.已知 int x=1,y=1,z=1;表达式"x+++y+++z++"的值是____。 A) 3 B) 4 C) 5 D) 表达式错误 42.已知大写字母A的ASCII码是65,小写字母a的ASCII码是97。 以下不能将变量c中的大写字母转换为对应小写字母的语句是_____。 A)c=(c-'A')%26+'a'B)c=c+32C)c=c-'A'+'a'D)c=('A'+c)%26-'a' 43.表达式sizeof(double)是 _____。 A) 函数调用 B) double型表达式 C) int型表达式 D) 非法表达式 知识点3: 输入输出 44.下列程序的输出结果是_____。 A)3 B)3.2 C)0 D)3.07 main() {doubled=3.2;intx,y; x=1.2;y=(x+3.8)/5.0; printf("%d\n",d*y); } 45.下列程序执行后的输出结果是(小数点后只写一位)_____。 A)6 6 6.0 6.0 B)6 6 6.7 6.7 C)6 6 6.0 6.7 D)6 6 6.7 6.0 main() {doubled; floatf; lingl; inti; i=f=1=d=20/3; printf("%d%ld%f%f\n",i,l,f,d); } 46.执行语句 printf("%x",-1);屏幕显示____。 A) -1 B) 1 C) -ffff D) ffff 47.若a为整型变量,则以下语句______。 a=-2L; printf("%d\n",a); A)赋值不合法B)输出值为-2C)输出为不确定值D)输出值为2 48.若变量都已正确定义,则程序段______。 a=3;b=4; a>b? printf("***a=%d",a++);printf("###b=%d",b++); A)输出为: ***a=4B)输出为: ***a=3 C)输出为: ###b=4D)输出为: ###b=5 49.使用语句scanf("x=%f,y=%f",&x,&y);输入变量x、y的值(□代表空格),正确的输入是____。 A) 1.25,2.4 B) 1.25□2.4 C) x=1.25,y=2.4 D) x=1.25□y=2.4 50.设有输入语句scanf("a=%db=%d",&a,&b);如果运行程序,该如何输入数据______。 A)a=6,b=7B)67C)a=6b=7D)6,7 51.设inta=3,b=4;执行printf("%d,%d",(a,b),(b,a));后的输出结果是_____ A)3,4B)4,3C)4,4D)3,3 52.有以下程序,以下叙述中正确的是_____。 main() {chara1='M',a2='m'; printf("%c\n",(a1,a2));} A)程序输出大写字母MB)程序输出小写字母m C)格式说明符不足,编译出错D)程序运行时产生出错信息 53.有以下程序 main() {intm=12,n=34; printf("%d%d",m++,++n); printf("%d%d\n",n++,++m); } 程序运行后的输出结果是______。 A)12353514B)12353513C)12343514D)12343513 知识点4: 逻辑量和逻辑表达式 54.在C语言中,能代表逻辑值“真”的是______。 A)trueB)大于0的数C)非0整数D)非0的数 55.设intx=0,y=1;则表达式(x&&--y)运算完毕后,y的值是_____。 A)0B)1C)2D)–1 56.设int x=1,y=1;表达式(! x||y--)的值是 A)0 B)1 C)2 D)-1 57.设intx=1,y=1;则表达式(x||--y)运算完毕后,y的值是(): A)0B)1C)2D)–1 58.已知: char a;int b;float c;double d;执行语句"c=a+b+c+d;"后,变量c的数据类型是____ 。 A) int B) char C) float D) double 59.设inta=0,b=5;执行表达式++a||++b,a+b后,a,b和表达式的值分别是_____。 A)0,0,0B)0,5,5C)1,5,6D)1,6,7 60.已知int x=1,y;执行下述语句后变量x的值是____。 y=++x>5&&++x<10; A) 1 B) 2 C) 3 D) 4 61.关系表达式a≤x<b的正确描述是 A)a<=x (x=b) 62.设有inti,j,k;则表达式i=1,j=2,k=3,i&&j&k的值为 A)0B)1C)2D)3 63.为判断字符变量c的值不是数字也不是字母时,应采用下述表达式____。 A) c<=48||c>=57&&c<=65||c>=90&&c<=97||c>=122 B) ! (c<=48||c>=57&&c<=65||c>=90&&c<=97||c>=122) C) c>=48&&c<=57||c>=65&&c<=90||c>=97&&c<=122 D) ! (c>=48&&c<=57||c>=65&&c<=90||c>=97&&c<=122) 64.设有inti,j,k;则表达式i=1,j=2,k=3,i&&j&k的值为 A)0B)1C)2D)3 知识点5: 位运算 65.在位运算中,操作数每右移一位,其结果相当于____。 A) 操作数乘以2 B) 操作数除以2 C) 操作数除以16 D) 操作数乘以16 66.已知二进制数a是00101101,如果想通过整型变量b与a做异或运算,使变量a的高4位取反,低4位不变,则二进制数b的值应是____。 A) 11110000 B) 00001111 C) 11111111 D) 00000000 67.已知 int a=15,执行语句a=a<<2以后,变量a的值是____。 A) 20 B) 40 C) 60 D) 80 知识点6: 选择结构和if、switch语句 68.把以下四个表达式用作if语句的控制表达式时,选项_______与其它三个选项含义不同。 A)k%2B)k%2==1C)(k%2)! =0D)! k%2==1 69.在嵌套使用if语句时,C语言规定else总是________。 A)和之前与其具有相同缩进位置的if配对 B)和之前与其最近的if配对 C)和之前与其最近的且不带else的if配对 D)和之前的第一个if配对 70.在以下给出的表达式中,与while(E)中的(E)不等价的表达式是_______。 A)(! E==0)B)(E>0‖E<0) C)(E==0)D)(E! =0) 71.下列叙述中正确的是________。 A)break语句只能用于switch语句 B)在switch语句中必须使用default C)break语句必须与switch语句中的case配对使用 D)在switch语句中,不一定使用break语句 72.下列条件语句中,功能与其他语句不同的是______。 A)if(a)printf("%d\n",x);elseprintf("%d\n",y); B)if(a==0)printf("%d\n",y);elseprintf("%d\n",x); C)if(a! =0)printf("%d\n",x);elseprintf("%d\n",y); D)if(a==0)printf("%d\n",x);elseprintf("%d\n",y); 73.以下程序段中与语句k=a>b? (b>c? 1: 0): 0;功能等价的是________。 A)if((a>b)&&(b>C))k=1;B)if((a>b)||(b>C))k=1 elsek=0; C)if(a<=b)k=0;D)if(a>b)k=1; elseif(b<=C)k=1;elseif(b>C)k=1; elsek=0; 74.已知int i=1,j=0;执行下面语句后j的值是____。 while(i) switch(i) { case 1: i+=1;j++;break; case 2: i+=2;j++;break; case 3: i+=3;j++;break; default: i--;j++;break; } A) 1 B) 2 C) 3 D) 死循环 知识点7: 循环结构while、do~while和for语句 75.下面的for语句______ 。 for(x=0,y=10;(y>0)&&(x<4);x++,y-- ) ; A) 是无限循环 B) 循环次数不定 C) 循环执行4次 D) 循环执行3次 76.在以下给出的表达式中,与while(E)中的(E)不等价的表达式是______。 A)(! E==0)B)(E>0‖E<0)C)(E==0)D)(E! =0) 77.有以下程序段,则while循环执行的次数为_______。 intk=0;while(k=1)k++; while循环执行的次数为_______。 A)无限次B)有语法错,不能执行C)一次也不执行D)执行1次 78.要求通过while循环不断读入字符,当读入字母N时结束循环。 若变量已正确定义,以下正确的程序段是________。 A)while((ch=getchar())! =′N′)printf("%c",ch); B)while(ch=getchar()! =′N′)printf("%c",ch); C)while(ch=getchar()==′N′)printf("%c",ch); D)while((ch=getchar())==′N′)printf("%c",ch); 79.已知int i=1; 执行语句while (i++<4) ;后,变量i的值为____。 A) 3 B) 4 C) 5 D) 6 80.以下程序执行后的输出结果是______。 main() {inty=10; while(y--);printf("y=%d\n",y); } A)y=0B)y=-1 C)y=1D)while构成无限循环 81.若变量已正确定义,要求程序段完成求5! 的计算,不能完成此操作的程序段是_____。 A)for(i=1,p=1;i<=5;i++)p*=i; B)for(i=1;i<=5;i++){p=1;p*=i;} C)i=1;p=1;while(i<=5){p*=i;i++;} D)i=1;p=1;do{p*=i;i++;}while(i<=5); 82.有以下程序段,为使此程序段不陷入死循环,从键盘输入的数据应该是______。 intn,t=1,s=0; scanf("%d",&n); do{s=s+t;t=t-2;}while(t! =n); A)任意正奇数B)任意负偶数C)任意正偶数D)任意负奇数 83.以下程序执行后的输出结果是_______。 main() {inti,s=0; for(i=1;i<10;i+=2)s+=i+1; printf(“%d\n”,s); } A)自然数1~9的累加和B)自然数1~10的累加和 C)自然数1~9中的奇数之和D)自然数1~10中的偶数之和 知识点8: 数组的基本概念和引用 84.下述对C语言字符数组的描术中错误的是______。 A)字符数组可以存放字符串 B)字符数组中的字符串可以整体输入、输出 C)可以在赋值语句中通过赋值运算符“=”对字符数组整体赋值 D)不可以用关系运算符对字符数组中的字符串进行比较 85.若要求定义具有10个int型元素的一维数组a,则以下定义语句中错误的是______。 A)#defineN10B)#definen5 inta[N] inta[2*n] C)inta[5+5] D)intn=10,a[n] 86.以下语句中存在语法错误的是________。 A)charss[6][20];ss[1]="right? "; B)charss[][20]={"right? "}; C)char*ss[6];ss[1]="right? "; D)char*ss[]={"right? "}; 87.设有数组定义: chararray[]="China";则数组array所占的空间为______。 A)4字节B)5字节C)6字节D)7字节 88.二维数组的正确说明是____。 A) int a[][]={1,2,3,4,5,6};B) int a[2][]={1,2,3,4,5,6}; C) int a[][3]={1,2,3,4,5,6}; D) int a[2,3]={1,2,3,4,5,6}; 89.对字符数组s赋值,不合法的一个是____。 A) char s[]="Beijing"; B) char s[20]={"beijing"}; C) char s[20];s="Beijing"; D) char s[20]={'B','e','i','j','i','n','g'}; 90.字符数组str赋初值,str不能作为字符串使用的一个是____。 A) char str[]="shanghai"; B) char str[]={"shanghai"}; C) char str[9]={'s','h','a','n','g','h','a','i'}; D) char str[8]={ 's','h','a','n','g','h','a','i'
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 基础 例题