C语言程序设计习题集(1)

合集下载

C语言程序设计(第1次)

C语言程序设计(第1次)

第1次作业一、单项选择题(本大题共60分,共20小题,每小题3分)1. #inl ucde <mycode.h> 是一条()。

A. 文件包含预处理命令B. 宏定义预处理语句C. 条件编译预处理命令D. C语句2.在C程序中,实型常数10-5的指数书写形式是()。

A.10A-5B.10E-5C.1E-5D.E-52. 下面关于结构体指针变量的描述中,正确的是()。

A. 定义一个结构体类型指针变量,可以用于存放同类型结构体变量在内存中的起始地址B. 定义一个结构体类型指针变量,可以存放同一程序中任意结构体类型变量地址C. 在函数的形式参数表中,不能有结构体类型指针变量作为形式参数D. 表示结构体变量的地址时,不需要使用取地址运算符,而是用结构体变量名直接表示3. 关于语句:int (*ptr)(); ,以下说法错误的是()。

A. ptr是指向函数的指针B. ptr可以指向定义为类似int a()的函数C. ptr是一个函数名,该函数返回值是指向整型数据的指针D. ptr是C语言的标识符合,命名要符合C语言的规定4. 下面关于结构体变量的描述中,错误的是()。

A. 结构体变量也遵循先定义、后使用的原则B. 结构体变量可以初始化C. 结构体变量不能作为整体实现数据的输入D. 结构体变量虽然不能整体输入,但可以整体实现数据输出5. 下面关于一维动态数组的描述中,错误的是( )。

A. 创建一维动态数组需要一个一级指针变量作为数组名使用B. malloc函数的返回值直接赋值给指针变量C. malloc函数的返回值需按要求强制转换后赋值给指针变量D. 动态一维数组的长度也不能是任意的长度6. 设有C语句序列:int arr[5],*p1; p1=arr; ,那么能够输入数组3号元素值的是()。

A. sca nf("%d",p1+3);B. sca nf("%d",arr[3]);C. sca nf("%d",p1*3);D. sca nf("%d",&p1[3]);7. 下面与结构体数组做函数参数相关描述中,错误的是( )。

C语言程序设计习题集及答案.doc

C语言程序设计习题集及答案.doc

C 诺言程序设计习题集设int 数据占用两个字节,float 数据占用四个字节,double 数据占用8个字节,且已 知float a=2; int b=3;则执行下列语句输出为 _________ 。

printf ("%d", sizeof (a*b) +2/5); A 4B 8C 6D 7设int 型占2个字节,且int i 二-2;,则语句printf (H%u", i);的输出结果为 _________ 。

A 0B -2C 65534D 65535a=58, b=58a-b-c!23 C 0 i 的值为—C 2. 6C'\‘若y 为int 型变童,则执行以下语句后,y 的值是y=8; y+二y -二y*y; A 64B -56以下合法的浮点型常量是—A e-3B 1.5e+2.4C 3. 14e+2LC - 112k=int(a+b);char01 ff23不确定D *\xafD -48D 3. 14 e +5单项选择题(每题2分,共44分) 以下叙述正确的是 _____ 。

A C 程序基本组成单位是语句 C 简单C 语句必须以分号作为结束符一个C 语言程序是从 ______ 开始执行的。

A 程序中第一个函数C 包含文件(头文件)的第一个函数请选出合法的C 语言赋值语句 _______ 。

A a=b=58B i++;下面标识符中,合法的用户标识符是—A labcB includeC以下所列的C 语言整形常量中,正确的是—A 0x10B 0976C 076LC 语言中下列运算符的操作数必须为整型的是 _______ o A %B ++C /设3和b 均为int 型变量,则执行以下语句后的输出为_int a=20; int b=3; printf ('*%d\n n , a+= (b%=2)); A 20B 21已知int i;,则执行语句i=2. 6;后,A 2B 3以下合法的字符常量为 _____ 。

C语言程序设计复习题(一)1的阅读程序部分

C语言程序设计复习题(一)1的阅读程序部分
3
} case 2: printf("third\n"); } } 结果:first third 4.下列程序运行结果是【 -1 】 。 #include<stdio.h> main( ) { int n=4; do n--; while (n); printf("%d\n",--n); } 5.下列程序运行结果是【 】 。 #include<stdio.h> dec( ) { static int x=5; x--; printf("%d",x); } main( ) { int k; for(k=0;k<3;k++) dec( ); } 结果:4 3 2 五.程序填空(请依题意,将程序中括号部分补充完整。每题 3 分,共 15 分) 1. 一个正整数与 3 的和是 5 的倍数,与 3 的差是 6 的倍数,编写一个程序求符合条件的最 小数。 #include <stdio.h> main() { int n; n=1; while (1) { n=n+1; if 【 (1) (n+3)%5==0&&(n-3)%6==0 】break; } printf("n=%d",n); } 2.将两个字符串合并成一个字符串。 #include <stdio.h> main() { char s1[20],s2[20],s3[40]; int i,j; printf("String1:"); gets(s1); printf("String2:》复习题(二)
一.单选题(在本题的每一小题的备选答案中,只有一个答案是正确的,请把你认为正确答 案的题号,填入题中的括号内。多选不给分。每题 1 分,共 20 分) 1.在 C 语言中,不同类型数据混合运算时,要先转换成同一类型后进行运算。设一表达式 中包含有 int、 long、 unsigned、 char 类型的变量和数据, 则表达式最后的运算结果是 【 ④ 】 类型数据。 ① int ② char ③ unsigned ④ long 2.若 int 型数据占 2 个字节,则以下语句的输出为 【 ④ 】 。 int k=-1; printf(“%d,%u\n”,k,k); ① -1,-1 ② -1,32767 ③ -1,32768 ④ -1,65535 3.设 x 和 y 均 为 int 型 变 量 , 则 执 行 以 下 语 句 后 的 输 出 为 【 ① 】 。 x=1 5; y=5 ; pri ntf( “ %d\n ” ,x%= (y%= 2)); ① 0 ② 1 ③ 6 ④ 12 4.若 x 为 uns igned in t 型 变 量 , 则 执 行 以 下 语 句 后 的 x 值 为 【 ④ 】 。 x=6 5535; pri ntf( “ %d\n ” ,x); ① 65535 ② 1 ③ 无定值 ④ -1 5 . 判断 char 型变量 c1 是否为小写字母的最简单且正确的表达式为【 ④ 】 。 ① ’a’<=c1<=’z’ ② (c1>=a)&&(c1<=z) ③ (‘a’<=c1)||(‘z’>=c1) ④ (c1>=’a’)&&(c1<=’z’) 6 . 以下不正确的 if 语句是【 ③ 】 。 ① if (x>y); ② if (x= =y) x+=y; ③ if (x!=y)scanf(“%d”,&x) else scanf(“%d”,&y); ④ if (x<y) {x++;y++;} 7 . C 语言对嵌套 if 语句的规定是:else 总是与【 ④ 】 配 对 。 ① 其 之 前 最 近 的 if ② 第 一 个 if ③ 缩 进 位 置 相 同 的 if ④ 其 之 前 最 近 且 不 带 else 的 if 8 . 设有说明语句:int a=2,b=7,c=5;则执行以下语句后,输出为【 ② 】 。 switch(a>0) { case 1: switch(b<0) { case 1: prin tf(“@”); break; case 2: p rintf(“!”); b reak; } case 0: switch(c==5) { case 0: prin tf(“*”); break; case 1 : p rintf(“#”); b reak; default:printf(“$”); break; } defau lt: p rin tf(“&”); } ① @#& ② #& ③ *& ④ $& 9 . 若有说明语句:int w=2,x=3,y=3,z=4;则表达式 w>x?w:z>y?z:x 的值是 【 ① 】 。 ① 4 ② 3 ③ 2 ④ 1 10.下面有关 for 循环的正确描述是【 ④ 】 。 ① for 循环只能用于循环次数已经确定的情况 ② for 循环是先执行循环体语句,后判定表达式

c语言程序设计习题集

c语言程序设计习题集

c语言程序设计习题集 1.1.2C语言基础 一单项选择题 1.下列变量定义中合法的是_____。 A.int_b=1—.e—3;B.doubleb=2—6e5.5;C.long某=8.8;D.float2_and=1—e—4;

答案:C 2.运算符有优先级,在C语言中关于运算符优先级的正确叙述是_____。A.算术运算符高于赋值运算符,赋值运算符高于位运算符B.算术运算符高于双目位运算符,位运算符高于赋值运算符

C位运算符高于算术运算符,算术运算符高于赋值运算符D.赋值运算符高于位运算符,位运算符高于算术运算符答案:B

3.C语言并不是非常严格的算法语言,在以下关于C语言的不严格的叙述中,错误的是_____。A.任何不同数据类型都不可以通用

B.有些不同类型的变量可以在同一个表达式中运算 C.在赋值表达式中等号(=)左边的变量和右边的值可以是不同类型D.同一个运算符号在不同场合可以有不同的定义答案:A

4.以下选项中属于C语言的数据类型是_____。 A.复数型B.逻辑型C.双精度型D.集合型答案:C 5.设有说明语句:charm=\\63;则变量m____。 A.包含1字符B.包含2个字符C.包含3字符D.说明不合法答案:A 6.下列常数中不能作为C语言的常量是_____。A.0某A6B.3.4e—3C.3e5D.0683答案:D

7.在C语言中,数字031是一个_____。 A.八进制数B.十六进制数C.十进制数D.非法数答案:A 8.下列可以正确表示字符型常量的是_____。 A.'a'B.'\\t'C.'\\n'D.'\\185'答案:B 9.设有inta=9;则表达式(++a某2/3)的值是__________。A.6B.7C.6.6D.0

答案:A 10.已知inta;floatf;正确的表达式是__________。 A.(intf)%aB.int(f)%aC.int(f%a)D.(int)f%a答案:D 11.设有以下变量定义,并已赋确定的值,则表达式某-y+a/b值的数据类型为__________。

地大《C语言程序设计(新)》在线作业一答案

地大《C语言程序设计(新)》在线作业一答案

地大《C语言程序设计(新)》在线作业一-0011试卷总分:100 得分:0一、单选题(共15 道试题,共60 分)1.以下选项中属于C语言的数据类型是()A.复数型B.逻辑型C.集合型D.双精度型正确答案:D2.以下函数的返回结果是( ). int function(char *x) { char *p=x; while(*p++); return(p-x-1); }A.求字符串的长度B.将字符串x连接到字符串p后面C.将字符串x复制到字符串pD.将字符串x反向存放正确答案:A3.C程序是由_____构成的A.主程序与子程序B.主函数与若干子函数C.一个主函数与一个其它函数D.主函数与子函数正确答案:B4.已知:int a,*p=&a;,则下列函数调用中错误的是______。

()A.scanf("%d",&a);B.scanf("%d",p);C.scanf("%d",*p);D.printf("%d",a);正确答案:C5.下面程序的结果是什么?Int i=3,j=4;i?i++:j++;printf(“%d %d\n”,i,j);A.3 3B.4 4C.3 4D.4 3正确答案:B6.下列符号中,合法的C标识符是__________.①#i ②a>b ③_ave ④a_comB.②③C.③④D.②正确答案:C7.设a、b、c、d、m、n均为int型变量,且a=5、b=6、c=7、d=8、m=2、n=2,则逻辑表达式(m=a>b)&&(n=c>d)运算后,n的值是__________.A.0B.1C.2D.3正确答案:C8.不合法的八进制数是()A.0B.028C.077D.01正确答案:B9.设有如下定义:int (*ptr) ();则以下叙述中正确的是______。

C语言程序设计习题集(学校题库)

C语言程序设计习题集(学校题库)

2010-2011 第一C语言程序设计一、填空题1. 每一个C程序都必须有一个____函数。

2. C程序是由____构成的。

3. TC集成开发环境中,用热键______查看运行结果。

4. 浮点数3*108写成C语言指数格式为_____(最简格式)。

5. TC控制字符'\r'表示____。

6. 字符串"abc\r\x41\x42\\"中有效字符个数是__。

7. 求表达式的值:123/10%10=___________ 。

8. 已知:a=3,b=4,c=5,求a=(b++)+c运算后a的值为:___________9. 用于从键盘读入一个字符但不回显的是__。

10. 执行语句if((x=4+3)==3)y=5;else y=10;后,结果:y=_______11. 执行语句if(!5)y=5;else y=10;后,结果:y=_____12. C语言是以( )为单位进行编译的。

第 1 页/共62 页13. 定义函数时在数据类型前面加static和extern分别表示定义____函数和____函数。

14. 内部函数的作用域只限于一个____。

15. 外部函数的作用域只限于一个____。

16. 有序线性表能进行二分查找的前提是该线性表必须是____ 存储的。

17. 对软件设计的最小单位(模块或程序单元)进行的测试通常称为____测试。

18. 实体完整性约束要求关系数据库中元组的____属性值不能为空。

19. 在关系A(S,SN,D)和关系B(D,CN,NM)中,A的主关键字是S,B的主关键字是D,则称____是关系A的外码。

20. 字符(char)型数据在微机内存中的存储形式是____21. 输入一个五位整数,将它反向输出。

例如输入12345,输出应为____。

22. C语言程序的基本单位是____ 。

23. C语言程序的三种基本结构是____。

24. C语言可执行程序的开始执行点是____ 。

C语言程序设计习题集

1 C 语言程序设计习题集第一、二章单项选择题1. 将汇编语言编写的程序翻译成目标程序的程序是( )A)解释 B)编译 C)汇编 D)目标2. 不属于面向机器语言的是 ( )A)符号语言 B)二进制语言 C)汇编语言 D)C 语言3. 将高级语言编写的程序翻译成目标程序的程序是()。

A)解释 B)编译 C)汇编 D)二进制4. 不属于高级语言的是()。

A)BASIC B)C C)ALGOL D)符号语言5. 程序段的基本结构中,不包含()。

A)函数结构 B)循环结构 C)顺序结构 D)分支结构6、C 语言源程序的最小单位是( )。

A 、程序行B 、语句C 、函数D 、字符7、以下说法正确的是( )。

A 、 在C 语言中,要调用的函数必须在main()函数中定义B 、C 语言程序总是从第一个定义的函数开始执行C 、 C 语言程序中,main()函数必须放在程序的开始部分D 、 C 语言程序总是从main()函数开始执行8、以下对C 语言描述中正确的是( )。

A 、 C 语言源程序中可以有重名的函数B 、C 语言源程序中要求每行只能书写一条语句2 C 、 C 语言源程序中,注释可以出现在任何位置D 、 最小的C 源程序中没有任何内容9、对C 语言源程序执行过程描述正确的是( )。

A 、 从main() 函数开始执行,到main()函数结束B 、 从程序的第一个函数开始执行,到最后一个函数结束C 、 从main 函数开始执行,到源程序的最后一个函数结束D 、 从第一个函数开始执行,到main 函数结束。

填空题1. 能完成某个任务的、有始有终的C 语言__ _称为C 程序。

2. 用来编写程序的计算机语言称为____。

3. 高级语言编写的程序称为____。

4. 用C 语言编写的源程序简称为“C 程序”,扩展名规定为“____”。

5. C 程序经过“编译”后将获得扩展名为“OBJ ”的____。

6. C 程序经过编译后获得的中间代码文件还需要经过____,才能成为可执行的“程序”, 目标程序的扩展名规定为"EXE"。

C语言程序设计模拟试题1(附答案)

《C语言程序设计》模拟试卷一一、单项选择题(每题2分,共30分)1、下列有关C语言的叙述中错误的是(D)。

A) C语句必须以分号结束B) 任何一个C程序中有且只有一个主函数C) 复合语句在语法上可被看作一条语句D) C程序中对数据的任何操作都可由运算符实现2、以下不能定义为用户标识符的是(C)。

A) MAIN B) _HJ C)2ong D) LINE13、下列符号中用来表示C语言中的回车换行的是(B)。

A) \r B) \n C)\b D) \t4、如有如下定义:int a=1,则语句printf(“%d,%d”, a, ++a);的运行结果为(B)。

A) 1, 1 B) 1, 2 C) 2, 2 D)2, 15、已知ch为字符型变量,下面表达式中正确的是(A)。

A) ch=’\xff ’B) ch=’\ff ’C) ch=’ ff ’D) ch=” ff ”6、以下能正确定义一维数组的是(C)。

A) int a[5]={0,1,2,3,4,5}; B) int a[5]=”012345”;C) char a[ ]=”012345”;D) char a[5]={0,1,2,3,4,5};7、以下语句中能正确定义变量并赋初值的是(A)。

A) char c=65; B) float f=f+1.1;C) double x=12.3e3.6; D) int m=n=2.0;8、在执行下列程序时输入:1357924,则程序的运行结果为(D)。

main( ){ int x, y;scanf(“%2d%2d”,&x,&y);printf(“%2d”,x*y); }A) 13 B) 1357 C) 74 D) 7419、执行下列程序段后输出的结果是(C)。

x = 9;while (x > 7){ printf(“*”); x- -; }A) **** B) *** C) ** D) *10、设char str1[10] = “ABCDE”, str2[10] = “xyz”;则执行语句printf(“%d”, strlen(strcpy(str1, str2))); 后的输出结果是(D)A) 9 B) 8 C) 5 D) 311、若用数组名作为函数调用的实参,则传递给形参的是(A)A) 数组的首地址B) 数组第一个元素的值C) 数组中全部元素的值 D) 数组元素的个数12、在C程序中,若未在函数定义时说明函数类型,则函数默认的类型为( A ) A)void B)double C)int D)char13、下面不能正确进行字符串赋值操作的语句是(A)A) char s[5]={"ABCD"};B) char s[5]; s="ABCD";C) char *s;s="ABCDEF"; D) char *s="ABCD";14、设有说明int s[5]={1,3,5,7,9}; int *p=s; 则下列表达式中值为3的是(B )A)++p B)++(*p) C) *(++p) D) *(p+=2)15、下面程序的输出结果是(B)int m=13;int fun( int x, int y){ int m=3;return( x*y-m); }main( ){ int a=7,b=5;printf(“%d\n”, fun(a,b)/m); }A) 1 B) 2 C) 3 D) 10二、判断(每空1分,共10分)1、C语言有三种结构化程序设计方法,分别为顺序结构、选择结构和循环结构。

C语言程序设计模拟试题一(含答案)

C语言程序设计模拟试题一(含答案)1、下列述叙中正确的是A) 显示器和打印机都是输出设备B) 显示器只能显示字符C) 通常的彩色显示器都有7种颜色D) 打印机只能打印字符和表格2、微型计算机中运算器的主要功能是进行A) 算术运算B) 逻辑运算C) 算术和逻辑运算D) 初等函数运算3、是DOS系统的最外层模块,通常称之为A) 引导程序B) 输入输出系统C) 命令处理系统D) 文件管理系统4、电子邮件是A) 网络信息检索服务B) 通过Web网页发布的公告信息C) 通过网络实时交互的信息传递方式D) 一种利用网络交换信息的非交互式服务5、和十进制数225相等的二进制数是A) 11101110 B) 11111110C) 10000000 D) 111111116、下列叙述中正确的是A) 指令由操作数和操作码两部分组成\B) 常用参数xxMB表示计算机的速度C) 计算机的一个字长总是等于两个字节D) 计算机语言是完成某一任务的指令集7、计算机的内存储器比外存储器A) 价格便宜B) 存储容量大C) 读写速度快D) 读写速度慢8、设当前盘为C盘,执行DOS命令"COPY B:\A.TXT PRN"之后,结果是A) B盘上的A.TXT文件被复制到C盘的PRN文件B) 屏幕上显示B盘上的A.TXT文件内容C) B盘上的A.TXT文件内容在打印机上输出D) B盘上的A.TXT文件被复制到B盘上的PRN文件9、要将当前盘当前目录下的两个文件X1.TXT和B1.TXT连接起来之后存入B盘当前目录下并且命名为Z.TXT,无论B 盘当前目录是什么,完成这件任务可以使用的命令是A) COPY A:X1.TXT+C:B1.TXT Z.TXTB) COPY X1.TXT+C:\\WS\\B1.TXT B:\\Z.TXTC) COPY A:X1.TXT+C:\\WS\\B1.TXTD) COPY X1.TXT+B1.TXT B:Z.TXT10、下列四组DOS命令中,功能等价的一组是A) COPY A:*.* B:与DISKCOPY A: B:B) COPY ABC.TXT+XYZ.TXT 与TYPE XYZ.TXT>>ABC.TXTC) COPY ABC.TXT+XYZ.TXT与COPY XYZ.TXT+ABC.TXTD) TYPE *.FOR>CON与COPY *.FOR CON11、设当前目录为D:\BB,现要把D:\AA目录下首字符是A的文本文件全部删除,应该使用命令A) DEL A*.TXT B) DEL \\AA\\A.TXTC) DEL \\AA\\A*.TXT D) DEL \\AA\\A?.TXT12、在Windows中,启动应用程序的正确方法是A) 用鼠标指向该应用程序图标B) 将该应用程序窗口最小化成图标C) 将该应用程序窗口还原D) 用鼠标双击该应用程序图标13、在Windows中,终止应用程序执行的正确方法是A) 将该应用程序窗口最小化成图标B) 用鼠标双击应用程序窗口右上角的还原按钮C) 用鼠标双击应用程序窗口中的标题栏D) 用鼠标双击应用程序窗口左上角的控制菜单框14、在微机系统中,对输入输出设备进行管理的基本程序模块(BIOS)存放在A) RAM中B) ROM中C) 硬盘中D) 寄存器中15、使计算机病毒传播范围最广的媒介是A) 硬磁盘B) 软磁盘C) 内部存储器D) 互联网16、设有int x=11; 则表达式(x++ * 1/3) 的值是A) 3 B) 4C) 11 D) 1217、下列程序的输出结果是main(){ double d=3.2; int x,y;x=1.2; y=(x+3.8)/5.0;printf("%d \n", d*y);}A) 3 B) 3.2C) 0 D) 3.0718、下列程序执行后的输出结果是(小数点后只写一位)main(){ double d; float f; ling l; int i;i=f=1=d=20/3;printf("%d %ld %f %f \n", i,l,f,d);}A) 6 6 6.0 6.0 B) 6 6 6.7 6.7C) 6 6 6.0 6.7 D) 6 6 6.7 6.019、下列变量定义中合法的是A) short _a=1-.le-1; B) double b=1+5e2.5;C) long do=0xfdaL; D) float 2_and=1-e-3;20、设int x=1, y=1; 表达式(!x||y--)的值是A) 0 B) 1C) 2 D) -121. 与y=(x>0?1:x<0?-1:0);的功能相同的if语句是A) if (x>0) y=1;else if(x<0)y=-1;else y=0;B) if(x)if(x>0)y=1;else if(x<0)y=-1;else y=0;C) y=-1if(x)if(x>0)y=1;else if(x==0)y=0;else y=-1;D) y=0;if(x>=0)if(x>0)y=1;else y=-1;22. 以下循环体的执行次数是main(){ int i,j;for(i=0,j=1; i<=j+1; i+=2, j--)printf("%d \n",i);}A) 3 B) 2C) 1 D) 023. 以下叙述正确的是A) do-while语句构成的循环不能用其它语句构成的循环来代替B) do-while语句构成的循环只能用break语句退出C) 用do-while语句构成的循环,在while后的表达式为非零时结束循环D) 用do-while语句构成的循环,在while后的表达式为零时结束循环24. 下列程序执行后的输出结果是main(){ int x='f'; printf("%c \n",'A'+(x-'a'+1)); }A) G B) HC) I D) J25. 执行下面的程序段后,变量k中的值为int k=3, s[2];s[0]=k; k=s[1]*10;A) 不定值B) 33C) 30 D) 1026. 若已定义:int a[ ]={0,1,2,3,4,5,6,7,8,9}, *p=a,i; 其中0≤i≤9, 则对a数组元素不正确的引用上A} a[p-a] B} *(&a[i])C} p[i] D} a[10]27、下列程序执行后的输出结果是void func(int *a,int b[]){ b[0]=*a+6; }main(){ int a,b[5];a=0; b[0]=3;func(&a,b); printf("%d \n,b[0]);}A) 6 B) 7C) 8 D) 928、下列程序的运行结果是#include <stdio.h>main(){ int a=2,c=5;printf("a=%d,b=%d\n",a,c); }A) a=%2,b=%5 B) a=2,b=5C) a=d, b=d D) a=%d,b=%d29、下列程序执行后的输出结果是main(){ int a[3][3], *p,i;p=&a[0][0];for(i=p; i<9; i++) p[i]=i+1;printf("%d \n",a[1][2]);}A) 3 B) 6C) 9 D) 随机数30、设有数组定义: char array [ ]="China"; 则数组array所占的空间为A) 4个字节B) 5个字节C) 6个字节D) 7个字节31、下列程序的输出结果是int b=2;int func(int *a){ b += *a; return(b);}main(){ int a=2, res=2;res += func(&a);printf("%d \n",res);}A) 4 B) 6C) 8 D) 1032、在以下四组中,每组有两个分别运算的函数,运算结果相同的是main(){ int i, j, m=0, n=0;for(i=p; i<2; i++)for(j=0; j<2; j++)if(j>=i) m=1; n++;printf("%d \n",n);}A) 4 B) 2C) 2 D) 033、下列程序的输出结果是struct abc{ int a, b, c; };main(){ struct abc s[2]={{1,2,3},{4,5,6}}; int t;t=s[0],a+s[1],b;printf("%d \n",t);}A) 5 B) 6C) 7 D) 834、设int b=2;表达式(b>>2)/(b>>1)的值是A) 0 B) 2C) 4 D) 835、在C程序中,可把整型数以二进制形式存放到文件中的函数是A) fprintf函数B) fread函数C) fwrite函数D) fputc函数36、下列程序执行后的输出结果是main(){ char x=0xFFFF; printf("%d \n",x--); } A) -32767 B) FFFEC) -1 D) -3276837、若有定义: float w;int a, b;则合法的switch语句是A) switch(w){ case 1.0: printf("*\\n");case 2.0: printf("**\\n");}B) switch(a);{ case 1 printf("*\\n");case 2 printf("**\\n");}C) switch(b){ case 1: printf("*\\n");default: printf("\\n");case 1+2: printf("**\\n");}D) switch(a+b);{ case 1: printf("*\\n");case 2: printf("**\\n");default: printf("\\n");}38、以下程序段的执行结果是int a, y;a=10; y=0;do{ a+=2; y+=a;printf("a=%d y=%d\n",a,y);if(y>20) break;{ while(a=14);A} a=12 y=12a=14 y=16a=16 y=20a=18 y=24B} a=12 y=12a=16 y=28C} a=12 y=12D} a=12 y=12a=14 y=26a=14 y=4439、若有以下调用语句,则不正确的fun函数的首部是main(){ …int a[50],n;…fun(n, &a[9]);…A} void fun(int m, int x[]) B} void fun(int s, int h[41])C} void fun(int p, int *s) D} void fun(int n, int a)40、语句printf("a\bre\'hi\'y\\\bou\n");的输出结果是(说明:'\b'是退格符)A) a\\bre\\'hi\\'y\\\\\\bou B) a\\bre\\'hi\\'y\\bouC) re'hi'you D) abre'hi'y\\bou41、请选出正确的程序段A) int *p;scanf("%d",p);…B) int *s, k;*s=100;…C) int *s, k;char *p, c;s=&k;p=&c;*p='a';…D) int *s, k;char *p, e;s=&k;p=&c;s=p;*s=1;42、已知指针p的指向如下图所示,则执行语句*--p;后*p的值是A) 30 B) 20C) 19 D) 2943、设已有定义:char *st="how are you";下列程序段中正确的是A) char a[11], *p; strcpy(p=a+1,&st[4]);B) char a[11]; strcpy(++a, st);C) char a[11];strcpy(a, st);D) char a[], *p;strcpy(p=&a[1],st+2);44、下列程序执行后的输出结果是mai(){ char arr[2][4];strcpy(arr,"you"); strcpy(arr[1],"me");arr[0][3]='&';printf("%s \n",arr);}A) you&ne B) youC) me D) err45、下列程序执行后的输出结果是void func1(int i);void func2(int i);char st[]="hello,friend!";void func1(int i){ printf("%c",st[i]);if(i<3){i+=2;func2(i);}}void func2(int i){ printf("%c",st[i]);if(i<3){i+=2;func1(i);}}main(){ int i=0; func1(i); printf("\n");}A) hello B) helC) hlo D) hlm46、假定下列程序的可执行文件名为prg.exe,则在该程序所在的子目录下输入命令行: prg hello good<回车>后,程序的输出结果是main()int argc, char *argv[]){int i;if(argc<-0)return;for(i=1;i<argc;i++)printf("%c", *argv[i]);}A) hello good B) hgC) hel D) hellogood47、下列程序执行后的输出结果是#define MA(x) x*(x-1)main(){ int a=1,b=2;printf("%d \n",MA(1+a+b));}A) 6 B) 8C) 10 D) 1248、变量a所占内存字节数是union U{ char st[4];int i;long l;};struct A{ int c;union U u;}a;A) 4 B) 5C) 6 D) 849、执行下列程序时输入:123<空格>456<空格>789<回车>,输出结果是main(){char s[100];int c, i;scanf("%c",&c);scanf("%d",&i);scanf("%s",s);printf("%c,%d,%s \n",c,i,s);}A) 123,456,789 B) 1,456,789C) 1,23,456,789 D) 1,23,45650、执行下列程序时输入:123<空格>456<空格>789<回车>,输出结果是main(){char s[100];int c, i;scanf("%c",&c);scanf("%d",&i);scanf("%s",s);printf("%c,%d,%s \n",c,i,s); }A) 123,456,789 B) 1,456,789 C) 1,23,456,789 D) 1,23,456答案:ACCDD ACCDBCDDBD ACAABACDAA DABBCBABDA CDBCCCBABC BBCDD。

C语言程序设计习题集答案

第1~2章 C语言概述、算法、数据类型、运算符与表达式 一、选择题 ACDBB CCDCB D 二、填空题 1、n=20 2、a=66,b=E 第3章 顺序程序设计 一、选择题 BAAD 二、程序阅读 1、12 24 0 12 2、2,3,2,2 3、0 三、编程 1 #include <> #include <> void main() { int a,b,c; float s,area; scanf("%d,%d,%d",&a,&b,&c); s=(a+b+c)/; area=sqrt(s*(s-a)*(s-b)*(s-c)); printf("a=%f,b=%f,c=%f,s=%f,area=%f",a,b,c,s*2,area); } 2 #include <> #include <> void main() { float a,b,c,del,x1,x2; scanf("%f,%f,%f",&a,&b,&c); del=b*b-4*a*c; if (del>=0) { x1=(-b+sqrt(del))/(2*a); x2=(-b-sqrt(del))/(2*a); printf("x1=%f,x2=%f",x1,x2); } else printf("没有 实根"); } 3 #include <> void main() { int c,f; printf(“input c:\n”); scanf(“%d”,&c); f=*c+32; printf("%d的华氏温度是%d",c,f); }

选择结构程序设计 一、选择题 DBBCD C 二、程序阅读 1、 |a|+|b|=61 2、 PQ 3、 -1 4、 60~69 60 Error! 5、 0,1 6、 a+b+c=15 三、编程 1 #include <> void main() { int a,b,c,min; scanf("%d,%d,%d",&a,&b,&c); min=a; if (min>b) min=b; if (min>c) min=c; printf(“%d,”,min); }

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基础知识 一 单项选择题(每题2分,共44分) 1 以下叙述正确的是_C_。 A C程序基本组成单位是语句 B C程序每一行只能写一个语句 C 简单C语句必须以分号作为结束符 D 注释语句可以嵌套 2 一个C语言程序是从_B_开始执行的。 A 程序中第一个函数 B 名为main的函数 C 包含文件(头文件)的第一个函数 D 程序中的第一个语句 3 请选出合法的C语言赋值语句_B_。 A a=b=58 B i++; C a=58,b=58 D k=int(a+b); 4 下面标识符中,合法的用户标识符是 _B_。 A 1abc B include C a-b-c123 D char 5 以下所列的C语言整形常量中,正确的是_C_。 A 0x10 B 0976 C 076L D 01ff 6 C语言中下列运算符的操作数必须为整型的是_A_。 A % B ++ C / D = 7 设a和b均为int型变量,则执行以下语句后的输出为_B_。 int a=20; int b=3; printf("%d\n",a+=(b%=2)); A 20 B 21 C 0 D 23 8 已知int i;,则执行语句 i=2.6;后,i的值为_A_。 A 2 B 3 C 2.6 D 不确定 9 以下合法的字符常量为_D_。 A 'ab' B '\482' C '\' D '\xaf' 10 若y为int型变量,则执行以下语句后,y的值是_C_。 y=8; y+=y-=y*y; A 64 B –56 C –112 D –48 11 以下合法的浮点型常量是_C_。 A e-3 B 1.5e+2.4 C 3.14e+2L D 3.14 e +5 12 设int数据占用两个字节,float数据占用四个字节,double数据占用8个字节,且已知float a=2;int b=3;则执行下列语句输出为_B_。 printf("%d",sizeof(a*b)+2/5); A 4 B 8 C 6 D 7 13 设int型占2个字节,且int i=-2;,则语句printf("%u",i);的输出结果为_C_。 A 0 B -2 C 65534 D 65535 14 若x、y、z均为整型常量,且a=100,则执行下列语句后的z值为_A_。 x=a++; y=--a; z=x+y-a--; A 100 B 400 C 200 D 300 15 若有以下定义和语句:int u=010,v=0x10,w=10,printf("%d,%d,%d\n",u,v,w);,则输出结果是_A_。 A 8,16,10 B 10,10,10 C 8,8,10 D 8,10,10 16 设x、y为int型变量,则执行下列语句后,y的值是_A_。 x=5; y=x++*x++; y=--y*--y; A 529 B 2401 C 1209 D 625 17 假设在程序中a,b,c 均被定义成整型,并且已赋大于1的值,则下列能正确表示代数式 A 1/a*b*c B 1/(a*b*c) C 1/a/b/(float)c D 1.0/a/b/c 18 若有定义:int a=8,b=5,c;char d='A';,则执行语句c=a/b+d%a+0.5;后c的值为_A_。 A 2 B 2.5 C 3 D 类型不一致,无法计算,编译出错 19 在有以下程序: main() { int i=10,j=1; i=i+j++; printf("%d,%d,%d\n",i++,++j,i); } 执行后输出结果是_C_。 A 12,3,11 B 12,2,11 C 11,3,11 D 12,3,12 20 已知int i=65;,则putchar(i);printf("%d",i);printf("%c",i);的输出结果为_A_。 A A,65,A B 65,65,A C A,A,65 D A,A,A 21 已知int y,a,i=1;,则语句printf("%d,%d",-i++,(y=a=3.6*3));的输出结果为_A_。 A -1,10 B -2,1.8 C 0,3 D 1,18 22 有以下程序: main() { char a,b,c,d; a='\'; b='\xbc'; c='\0xab'; d='\023'; printf("%c%c%c%c\n",a,b,c,d); } 编译时出现错误,以下叙述中正确的是_D_。 A 程序中只有a='\';语句不正确 B b='\xbc';语句不正确 C d='\023';语句不正确 D a='\';和c='\0xab';语句都不正确

二 填空题(第1题2分,其余每题3分,共56分) 1 设x为int型变量,请写出描述“x是偶数”的表达式是_x%2==0_。 2 已知scanf("a=%d,b=%d,c=%d",&a,&b,&c);,若从键盘输入2、3、4三个数分别作为变量a、b、c的值则正确的输入形式是_a=2,b=3,c=4↙_。 3 设有语句int a=3;,则执行了语句 a+=a-=a*a后,变量a的值是_-12_。 4 以下程序的输出结果是_10_。 main() { int a=-10,b=-3; printf("%d\n",-a++); printf("%d\n",-a+b); } 5 以下程序的输出结果是_-14_。 main() { char c;

abc1的表达式是_D_。 c=0362; printf("%d\n",c); } 6 以下程序段(n所赋的是八进制数)执行后输出结果是_32767,32767_。 int m=32767,n=032767; printf("%d,%o\n",m,n); 7 字符串"\\name\\\101ddress\b\xaf"的长度为:_15_。 8 有以下程序段: int m=0,n=0; char c='a'; scanf("%d%c%d",&m,&c,&n); printf("%d,%c,%d\n",m,c,n); 若从键盘上输入:10A10,则输出结果是_10,A,10_。 9 以下程序的输出结果是___。 10,12,a 10,8,16 10,a main() { printf("%d,%o,%x\n",10,10,10); printf("%d,%d,%d\n",10,010,0x10); printf("%d,%x\n",012,012); } 10 设a、b、c为整形变量,且a=2、b=3、c=4,则执行完语句 a*=16+(b++)-(++c);之后,变量a的值为_28_。 11 以下程序的输出结果为_12_。 main() { int x=023; printf("%x\n",--x); } 12 以下程序的结果为___。 a=5 c=6 b=5 d=18 main() { int a=2,b=3,c,d; c=(a++)+(a++)+(a++); d=(++b)+(++b)+(++b); printf("a=%d c=%d\n",a,c); printf("b=%d d=%d\n",a,d); } 13 以下程序 main() { char ch1,ch2,ch3; scanf("%c%c%c",&ch1,&ch2,&ch3); printf("%c%c%c%c%c",ch1,'#',ch2,'#',ch3); } 当输入ABC时运行结果为 A#B#C ,当输入A BC时运行结果为 A# #B 。 14 若有定义:float x;,以下程序段的输出结果是_5.169000_。 x=5.16894; printf("%f\n",(int)(x*1000+0.5)/(float)1000); 15 以下程序的功能是:输入一个小写字母,输出对应的大写字母,将程序补充完整。 main() { char ch; 【1】scanf("%c",&ch); /* 从键盘输入一个小写字母 */ 【2】ch-=32; /* 将该字母转换为大写字母 */ 【3】printf("%c\n",ch); /* 输出转换后的结果 */ } 16 当运行以下程序时,在键盘上从第一列开始输入9876543210↙(此处↙代表回车),则程序的输出结果是_a=98,b=765.000000,c=4321.000000_。 main() { int a; float b,c; scanf("%2d%3f%4f",&a,&b,&c); printf("\na=%d,b=%f,c=%f\n",a,b,c); } 17 以下程序的运行结果是___。 123.12346 123.123457 00012345 abcdefgh

main() { printf("%12.5f\n",123.1234567); printf("%12f\n",123.1234567); printf("%12.8d\n",12345); printf("%12.8s\n","abcdefghij"); } 18 运行以下程序时,如从键盘上输入abcdefg↙,则输出结果是_abc_。 main() { char ch1,ch2,ch3; ch1=getchar(); ch2=getchar(); ch3=getchar(); putchar(ch1); putchar(ch2); putchar(ch3); putchar('\n'); } 19 运行以下程序时,如从键盘上输入:a=3,b=5↙35,35.12↙abc↙后,结果是_a=3,b=5,x=35.000000,y=35.119999,c1=a,c2=b_。 main() { int a,b; float x,y; char c1,c2; scanf("a=%d,b=%d",&a,&b); scanf("%f,%e",&x,&y); scanf("%c%c%c",&c1,&c1,&c2); printf("a=%d,b=%d,x=%f,y=%f,c1=%c,c2=%c\n",a,b,x,y,c1,c2);

相关文档
最新文档