c语言习题及参考答案
- 格式:doc
- 大小:490.00 KB
- 文档页数:34
《C语言程序设计》练习题及答案1. 单选题1. 设有定义:int n=0,*p=&n,**q=&p,则下列选项中正确的赋值语句是A. p=1;B. *q=2;C. q=p;D. *p=5;正确答案:D2. 设有int x=11;则表达式(x++*1/3)的值是A. 3B. 4C. 11D. 12正确答案:A3. 下面程序的输出结果是main(){ int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a; printf("%d\n",*(p+2));}A. 3B. 4C. 1D. 2正确答案:A4. sizeof(float)是A. 一个双精度型表达式B. 一个整型表达式C. 一种函数调用D. 一个不合法的表达式正确答案:B5. 在16位C编译系统上,若定义long a;,则能给a赋40000的正确语句是A. a=20000+20000;B. a=4000*10;C. a=30000+10000;D. a=4000L*10L正确答案:D6. 请选出以下语句的输出结果printf("%d\n",strlen("\t\"\065\xff\n"));A. 5B. 14C. 8D. 输出项不合法,无正常输出正确答案:A7. 若x,i,j和k都是int型变量,则计算表达式x=(i=4,j=16,k=32)后,x的值为A. 4B. 16C. 32D. 52正确答案:C8. 下面能正确进行字符串赋值操作的是A. char s[5]={"ABCDE"};B. char s[5]={ ′A′, ′B′, ′C′, ′D′, ′E′};C. char *s;s="ABCDE";D. char *s;char a; scanf("%s",&s);正确答案:C9.以下程序的输出结果是#include "stdio.h"void reverse(int a[],int n){int i,t;for(i=0;i<n/2;i++){t=a[i];a[i]=a[n-1-i];a[n-1-i]=t;}}main(){int b[10]={1,2,3,4,5,6,7,8,9,10};int i,s=0;reverse(b,8);for(i=6;i<10;i++) s+=b[i];printf("%d\n",s);}A. 22B. 10C. 34D. 30正确答案:A10. 以下不正确的叙述是A. 在C程序中,逗号运算符的优先级最低B. 在C程序中,APH和aph是两个不同的变量C. 若a和b类型相同,在计算了赋值表达式a=b后b中的值将放入a中,而b中的值不变D. 当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值正确答案:D2. 多选题11. 以下______是正确的转义字符。
c 语言基础练习题及答案一、单项选择题1. C语言源程序文件经过C编译程序编译连接之后生成一个后缀为_c_A 、”.c” B、“ .obj ” C、“ .exe” D 、“ .bas”2. 以下选项中不正确的整型常量是_c ______ 。
A、12L B 、-10 c、1,900 D、123U3. 表达式___c___ 的值是0。
A、3%5B、3/5.0 c、3/5 D、3<54. 表达式!(x>0||y>0) 等价于__D___ 。
A 、!x>0||!y>0B 、!(x>0)||!(y>0) c 、!x>0&&!y>0 D 、!(x>0)&&!(y>0)5. 若变量已正确定义并赋值,表达式__D ____ 不符合c 语言语法。
A、4&&3 B 、+a c、a=b=5 D 、int(3. 1 4)6. 若变量已正确定义,执行语句scanf(%d%d%d ,&k1,&k2,&k3) ;时,___BA 、2030,40 B、20 30 40 c、20, 30 40 D 、20, 30,407. 执行语句printf( ” __D ____ ” , 2); 将得到出错信息。
A、%dB、%o c、%x D 、%f8. 设变量定义为"int s[ ]=hello\nworld\n; ”则数组s中有—B __________ 个元素。
A、12B、13 c、14 D、159. 设变量定义为“ int a[2]={1,3}, *p=&a[0]+1; ” 则*p 的值是___B_。
A、2B、3 c、4 D、&a[0]+110. 若变量已正确定义并赋值,表达式-k++ 等价于__A________ 。
A、-(k++) B 、(-k)++ c、-(k+1) D、-(++k)11. 在c 语言程序中,在函数内部定义的变量称为__D ____ 。
《C语言》练习题及答案解析一.选择题1.下列字符序列中,不可用作C语言标识符的是(B)。
A.abc123 B.no.1 C._123_ D._ok2.一个C语言源程序是由(B)。
A.一个主程序和若干子程序组成B.一个或多个函数组成C.若干过程组成D.若干子程序组成3. 正确的C语言标识符是(A )。
A._buy_2 B.2_buy C.?_buy D.buy?4.已知字母A的ASCII码为十进制数65,且S为字符型,则执行语句S=’A’+’6’-’3’;后,S中的值为(A)。
A.’D’B.68 C.不确定的值D.’C’5.下列说法中,错误的是(A)。
A.每个语句必须独占一行,语句的最后可以是一个分号,也可以是一个回车换行符号B.每个函数都有一个函数头和一个函数体,主函数也不例外C.主函数只能调用用户函数或系统函数,用户函数可以相互调用D.程序是由若干个函数组成的,但是必须有且仅有一个主函数6.有如下程序段,从键盘输入数据的正确形式应是(B)。
(注:└┘代表空格)float x,y,z;scanf(“x=%d,y=%d,z=%d”,&a,&y,&z);A.123 B.x=1,y=2,z=3C.1,2,3 D.x=1└┘ y=2└┘ z=37.在C语言中,char型数据在内存中的存储形式是(D)。
A.补码B.反码C.原码D.ASCII码8. 下列符号中,不属于转义字符的是(B )。
A.\\ B.\0xAA C.\t D.\09. 不属于C语言关键字的是(D)。
A.int B.break C.while D.character10. 以下说法中正确的是(C)。
A.C语言程序总是从第一个定义的函数开始执行B.在C语言程序中,要调用的函数必须在main( )函数中定义C.C语言程序总是从main( )函数开始执行D.C语言程序中的main( )函数必须放在程序的开始部分11. C语言程序的基本单位是(C)。
(完整版)C语⾔程序设计练习题(含程序及参考答案)C语⾔练习题(所提供的源程序均采⽤⾃定义函数⽅式解决,如不采⽤函数⽅式,也可直接在main函数中借鉴该思想编程,因时间有限,所有程序未能⼀⼀验证,仅供参考使⽤)1、定义⼀个函数int fun(int a,int b,int c),它的功能是:若a,b,c能构成等边三⾓形函数返回3,若能构成等腰三⾓形函数返回2,若能构成⼀般三⾓形函数返回1,若不能构成三⾓形函数返回0。
#includeint fun(int a,int b,int c){if(a+b>c && b+c>a && a+c>b){if(a==b && b==c )return 3;else if(a==b||b==c||a==c)return 2;else return 1;}else return 0;}void main(){int a,b,c,shape;printf("\nInput a,b,c: ");scanf("%d%d%d",&a,&b,&c);printf("\na=%d, b=%d, c=%d\n",a,b,c);shape =fun(a,b,c);printf("\n\nThe shape : %d\n",shape);}2、编写⼀个程序,将两个变量的值交换, 例如变量a中的值原为 3,b中的值原为8,程序运⾏后 a 中的值为8,b中的值为3。
#includevoid fun(int *x,int *y){int t;t=*x;*x=*y;*y=t}void main(){int a=3,b=8;printf("%d %d\n",a,b);fun(&a,b);printf("%d %d\n",a,b);}3、从键盘输⼊3个数,将最⼤值放在变量a中,最⼩值放在变量c中。
C语言练习题(带详解答案)一单项选择题1.(A)是构成C语言程序的基本单位。
A、函数B、过程C、子程序D、子例程2.C语言程序从C开始执行。
A)程序中第一条可执行语句B)程序中第一个函数C)程序中的main函数D)包含文件中的第一个函数3、以下说法中正确的是(C)。
A、C语言程序总是从第一个定义的函数开始执行B、在C语言程序中,要调用的函数必须在main()函数中定义C、C语言程序总是从main()函数开始执行D、C语言程序中的main()函数必须放在程序的开始部分4.下列关于C语言的说法错误的是(B)A)C程序的工作过程是编辑、编译、连接、运行B)C语言不区分大小写。
C)C程序的三种基本结构是顺序、选择、循环D)C程序从main函数开始执行5.下列正确的标识符是(C)。
A.-a1B.a[i]C.a2_iD.intt5~8题为相同类型题考点:标识符的命名规则(1)只能由字母、数字、下划线构成(2)数字不能作为标识符的开头(3)关键字不能作为标识符选项A中的-,选项B中[与]不满足(1);选项D中的int为关键字,不满足(3)6.下列C语言用户标识符中合法的是(B)。
A)3a某B)某C)caeD)-e2E)union选项A中的标识符以数字开头不满足(2);选项C,E均为为关键字,不满足(3);选项D中的-不满足(1);7.下列四组选项中,正确的C语言标识符是(C)。
A)%某B)a+bC)a123D)123选项A中的%,选项B中+不满足(1);选项D中的标识符以数字开头不满足(2)8、下列四组字符串中都可以用作C语言程序中的标识符的是(A)。
A、print_3ddb8aBcB、I\\amone_halftart$it3paiC、tr_1CpppowwhileD、P某qMy->bookline#Hi.age选项B中的\\,$,选项D中>,#,.,-不满足(1);选项C中的while为关键字,不满足(3)9.C语言中的简单数据类型包括(D)。
程序设计基础(C语言版)习题第01章绪论一.选择题1.以下叙述中正确的是________。
A)程序设计的任务就是编写程序代码并上机调试B)程序设计的任务就是确定所用数据结构C)程序设计的任务就是确定所用算法D)以上三种说法都不完整【解析】程序设计通常分为问题建模、算法设计、编写代码和编译调试四个阶段。
所以选项A)、B)、C)说法都不完整。
2.以下关于简单程序设计的步骤和顺序的说法中正确的是。
A)确定算法后,整理并写出文档,最后进行编码和上机调试B)首先确定数据结构,然后确定算法,再编码,并上机调试,最后整理文档C)先编码和上机调试,在编码过程中确定算法和数据结构,最后整理文档D)先写好文档,再根据文档进行编码和上机调试,最后确定算法和数据结构【解析】设计一个能解决实际问题的计算机程序需要经过以下几个过程:①建立模型。
②算法设计:给出解决问题的步骤,即算法。
③算法表达:选择一种表达算法的工具,对算法进行清晰的表达。
④编写程序:选择一种程序设计语言,把以上算法程序化,这称为编写程序。
⑤程序调试:对编写好的程序进行调试,修改程序中的错误。
⑥程序文档编写与程序维护。
综上所述,B)选项是符合上述描述的,其他选项不恰当。
3,叙述中正确的是________。
A)C程序的基本组成单位是语句B)C程序中的每一行只能写一条语句C)简单C语句必须以分号结束D)C语句必须在一行内写完【解析】函数是C程序的基本组成单位;C语言书写风格很自由,不但一行可以写多个语句,还可以将一个语句写在多行中。
故本题答案为C)。
4.以下叙述中正确的是。
A)C程序中的注释只能出现在程序的开始位置和语句的后面B)C程序书写格式严格,要求一行内只能写一个语句C)C程序书写格式自由,一个语句可以写在多行上D)用C语言编写的程序只能放在一个程序文件中【解析】在C语言中,注释可以加在程序中的任何位置,选项A)错误。
C程序可以分模块写在不同的文件中,编译时再将其组合在一起,选项D)错误。
《高级语言程序设计》习题一.填空题1. 以下条件表达式可计算1+|a|的值,填空完成语句:a>=0 ?(1+a ):( 1-a )2. 函数max 定义的首部为:int max(int x[],int n),该函数完成实现寻找长度为n 的数组x 中的最大元素。
若在主函数中有定义:int c,a[10];并要求函数调用后,变量c 存放数组a 中的最大元素,则函数调用语句应为:(c=max(a,10);)3. 若有int i=5; 则循环语句while(i > = 1) i - -;执行后,i 的值为 (0)。
4. 能正确表示逻辑关系:“0≤a <10”的C 语言表达式是(0<=a && a<10)。
5. 设int a[2][3] = {{2},{3}};则数组元素( a[1][0] )的值为3。
6. 表达式 (int)(3.0/2.0)的值是( 1 )。
7. 有定义: int x=3, y=2; 执行x/=y+1; 语句后x 的值为( 1 ) 。
8. 有定义: int x=2, y=0; 表达式 (!x||y) 的值为( 0 )。
9. 有定义:char str[]= “Hello!”; 则数组str 的长度为( 7 )。
10. 有定义:int i=5; 则循环语句while(i>=1) i=i-2; 执行后变量i 的值为( -1 )。
11. 已知 ‘A ’~ ‘Z ’ 的ASCII 码为65~90,当执行int x= ‘D ’+5; 语句后x 的值为( 73 )。
12. 有定义int a[6]={1,2,3,4,5,6},*p=a; 则*(p+2)的值为( 3 ),*(++P )的值为( 2 )。
13. 如果在调用一个函数过程中,又调用另一个函数,称为函数的( 嵌套 )调用。
如果在调用一个函数的过程中又直接或间接地调用该函数本身,称为函数的( 递归 )调用。
基本语句练习1、若有以下程序段 D#include”stdio.h”void main( ){ int a=2,b=5;Printf(“a=%%d,b=%%d\n”,a,b);}其输出结果是()A、a=%2,b=%5B、a=2,b=5C、a=%%d,b=%%dD、a=%d,b=%d2、以下程序段 Cfloat a=3.1415; printf(“|%6.0f|\n”,a);其输出结果是()A、|3.1415|B、|3.0|C、| 3|D、|3.|3、以下程序段的输出结果是() Cfloat a=57.666; printf(“*%010.2f*\n”,a);A、*0000057.66*B、*57.66*C、*0000057.67*D、*57.57*4、下面语句printf(“|%8.5f|\n”,3461.45); 的输出结果是() CA、|61.45000|B、|3461.450|C、|3461.45000|D、|3461.4500|5、若变量都已经正确说明,则以下程序段: Ca=2; b=3; printf(a>b? ”***a=%d”: “###b=%d”,a,b);A、没有正确的输出格式控制B、输出为:***a=2C、输出为:###b=2D、输出为:***a=2###b=36、执行下列程序时输入1234567,程序的运行结果为() B#include”stdio.h”void main( ){int x, y;scanf(“%2d%2ld”,&x,&y);printf(“%d\n”, x+y);}A、17B、46C、15D、97、已知char a; int b; float c; double d; 则表达式a*b+c-d结果为()型。
AA、doubleB、intC、floatD、char8、根据定义和数据的输入方式,输入语句的正确形式是() B已有定义float f1, f2;数据的输入方式:4.523.5A、scanf(“%f,%f”,&f1,&f2);B、scanf(“%f%f”,&f1,&f2);C、scanf(“%3.2f%2.1f”,&f1,&f2);D、scanf(“%3.2f, %2.1f”,&f1,&f2);9、以下程序的输出结果为()*3.140000, 3.142*#include”stdio.h”void main( ){printf( “ *%f, %4.3f*\n”, 3.14, 3.1415);} 10、结构化程序流程图中一般包含3种基本结构,在下述结构中不属于其基本结构的是()。
第1章C语言概述(一)选择题1.一个C程序的执行是从 A 。
答案AA) 本程序的main函数开始,到main函数结束B) 本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C) 本程序文件的第一个函数开始,到本程序main函数结束D) 本程序的main函数开始,到本程序文件的最后一个函数结束2.以下叙述不正确的是 D 。
A) 一个C源程序必须包含一个main函数B) 一个C源程序可由一个或多个函数组成C) C程序的基本组成单位是函数D) 在C程序中,注释说明只能位于一条语句的后面3.以下叙述正确的是 C 。
A) 在对一个C程序进行编译的过程中,可发现注释中的拼写错误B) 在C程序中,main函数必须位于程序的最前面C) C语言本身没有输入输出语句D) C程序的每行中只能写一条语句4.一个C语言程序是由 B 。
A)一个主程序和若干个子程序组成B) 函数组成C) 若干过程组成D) 若干子程序组成5. C语言程序编译时,程序中的注释部分______D______.A) 参加编译,并会出现在目标程序中B) 参加编译,但不会出现在目标程序中C) 不参加编译,但会出现在目标程序中D) 不参加编译,也不会出现在目标程序中(二)填空题1、C语句结束符为____;_____________.2、C语句注释符号为:_/* */______________.3、一个C程序总是从____main函数______________开始执行的。
第3章数据类型、运算符与表达式(一)选择题1. 若x、i、j、k都是int型变量,则计算下面表达式后,x的值为( C )。
x=(i=4,j=16,k=32)A) 4 B) 16 C) 32 D) 522.下列四组选项中,均不是C语言关键字的选项是( A )。
A) define IF typeB) getc char printfC) include case scanfD) while go pow3. 下列四组选项中,均是不合法的用户标识符的选项是( B )。
A) W P_0 doB) b-a goto intC) float la0 _AD) -123 abc TEMP4. 下列四组选项中,均是合法转义字符的选项是( A )。
A) ‘\”’ ‘\\’ ‘\n’B) ‘\’ ‘\017’ ‘\”’C) ‘\018’ ‘\f’ ‘\xab’D) ‘\\0’ ‘\101’ ‘\xlf’5 . 下面正确的字符常量是( D )。
A) “c” B) ‘\\’’ C) a D) ‘K’6 .以下叙述不正确的是( D )。
A) 在C程序中,逗号运算符的优先级最低B) 在C程序中,MAX和max是两个不同的变量D) 当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值7. 以下叙述正确的是( C )。
A) 在C程序中,每行只能写一条语句B) 若a是实型变量,C程序中允许赋值a=10,因此实型变量中允许存放整型数C) 在C程序中,%是只能用于整数运算的运算符D) 在C程序中,无论是整数还是实数,都能被准确无误地表示8.已知字母A的ASCII码为十进制数65,且c2为字符型,则执行语句c2=‘A’+‘6’-‘3’后,c2中的值为( A )。
A) D B) 68 C) 不确定的值D) C9 .sizeof(float)是( B ) 。
A) 一个双精度型表达式B) 一个整型表达式C) 一种函数表达式D) 一个不合法的表达式10 .设C语言中,一个int型数据在内存中占2个字节,则unsigned int 型数据的取值范围为( C )。
A) 0 ~255 B) 0~32767 C) 0~65535 D) 0~214748364711 .设有说明:char w; int x; float y; double z;则表达式w*x+z-y值的数据类型为( D )。
A) float B) char C) int D) double12 .设以下变量均为int类型,则值不等于7的表达式是( C )。
A) (x=y=6,x+y,x+1) B) (x=y=6,x+y,y+1)C) (x=6,x+1,y=6,x+y) D) (y=6,y+1,x=y,x+1)13.设整型变量n=10,i=4,则赋值运算n%=i+1执行后,n的值是(A)。
A) 0 B) 1 C) 2 D) 314.设n=3;则n++的结果是(B )。
A)2 B) 3 C) 4 D) 515.以下不正确的C语言标识符是(D )。
A) ABC B) abc C) a_bc D)ab.c16.C程序是由(B )构成的。
A)主程序与子程序B) 主函数与若干子函数C) 一个主函数与一个其它函数D) 主函数与子函数17.在C语言中,不正确的int类型的常数是:( A )A) 32768 B)0 C) 037 D) 0xaf18.下面关于运算符优先顺序的描述中正确的是:( C )A)关系运算符< 算术运算符< 赋值运算符< 逻辑与运算符B)逻辑运算符< 关系运算符< 算术运算符< 赋值运算符C)赋值运算符< 逻辑与运算符< 关系运算符< 算术运算符D)算术运算符< 关系运算符< 赋值运算符< 逻辑与运算符19.设x为一数字字符,则其所对应的十进制数值为 B 。
A)x B)x-‘0’ C)*x D)&x20.说明语句char s=‘\t’,使s包含了几个字符? A 。
A)1 B)2 C)3 D)说明有错21.设a=6,b=4,则表达式b*=a+3的值为 D 。
A)3 B)18 C)27 D)3622.正确的C语言自定义标识符是 A 。
A)file_bak B)abc(10) C)continue D)class+323.设int x=8,y,z; 执行y=z=x++;x=y==z后,变量x的值是 B 。
A)0 B)1 C)8 D)924.下列数据类型中不属于构造类型的是 D 。
A)数组型B)结构型C)共用型D)枚举型25.表达式7/3的值是_D___。
A. 2.33B. 2.333C. 2.3333D. 226.Char型数据在内存中以_A__形式存放。
A. ASCII码形式B. 字符形式C. 字符串形式D. BCD码形式27.C语言的字符串以_A___结束。
A. NULLB. 整数C. ASCII码D. 长度28.假设i的初值为2,赋值语句j=i++执行后,j,i的值分别是_B___。
A. 3 , 3B. 2 , 3C. 3 , 2D. 2 , 229. 下列表达式的值为0的是(C)A. 3﹪5B. 3/5.0C. 3/5D. 3<530. 正确的C语言用户自定义标识符是(A)A. printB. floatC. when?D. random﹪231.设int a = 3;则表达式a<1&& - - a>1的运算结果和a的值分别是(B)32.下列运算符中优先级别最高的是____B__________。
A)< B)+ C)&& D)!=33、已知字母A的ASCII码为十进制数65,且c2为字符型,则执行语句c2=‘A’+‘6’-‘3’后c2的值为______A_______。
A)D B)68 C)不确定的值D)C34.以下非法的赋值语句是_C___。
A.n=(i=2,++i);B.j++;C.(a+b)++;D.x=j>0;35.如果关系表达式a>b的值为0,关系表达式c<d的值为1,则逻辑表达式(a>b)&&(c<d)的值为__A __。
A. 0B. 1C. –1D. 236.设有定义:long x=123456L;,则以下能够正确输出变量x值的语句是__B__。
A.printf(“x=%d\n”,x); B.printf(“x=%ld\n”,x);C.printf(“x=%8dL\n”,x); D.printf(“x=%LD\n”,x);(二)填空题1 .若有以下定义,则计算表达式y+=y-=m*=y后的y值是______-1_________。
int m=5,y=2;2. 在C语言中,一个int型数据在内存中占2个字节,则int型数据的取值范围为_-32768~32767或-215~215-1_________。
3 .若s是int型变量,且s=6,则下面表达式的值为____1___________。
s%2+(s+1)%24. 若a是int型变量,则下面表达式的值为_____26__________。
(a=4*5,a*2),a+65 .若x和a均是int型变量,则计算表达式(1)后的x值为____12___________,计算表达式(2)后的x 值为______4_________。
(1) x=(a=4,6*2)(2) x=a=4,6*26. 若a是int型变量,则计算下面表达式后a的值为_______2________。
A=25/3%37 .若x和n均是int型变量,且x和n的初值均为5,则计算表达式:x+=n++ ;后x的值为____10___________,n的值为_______6________。
8. 若有定义:char c=‘\010’;则变量c中包含的字符个数为_________1______。
9 .若有定义:int x=3,y=2;float a=2.5,b=3.5;则下面表达式的值为_______1________.(x+y)%2+(int)a/(int)b10. 已知字母a的ASCII码为十进制数97,且设ch为字符型变量,则表达式ch=’a’+’8’-‘3’的值为____’f’___________。
11. 初始化值是0.618的双精度(double)变量a的定义形式为___double a=0.618_____。
12. 若有定义 int m=5,y=2,则执行表达式 y+=y-=m*=y 后,y 的值为 ____-16_______。
13. 执行语句“a=4+(c=5);”后,变量a的值为___9__、c的值为____5____。
14.C语句“x*=y+2;”还可以写作___x=x*(y+2)_____15.计算x、y之和的立方根,C 语言表达式应写作______。
16.执行语句“a=5+(c=6);”后,变量a、c的值依次为______。
17.判断变量a、b的值均不为0的C语言表达式为______。
(三)阅读下列程序,写出运行结果(共18分,每题3分)1.#include <stdio.h>void main( ){ int a=1,b=4,c=2; 运行结果:a=(a+b)/c;printf(“%d \n”,--a);}2.以下程序的输出结果是___________。