C语言练习题1-5及参考答案,DOC

合集下载

c语言 习题及答案

c语言 习题及答案

c语言习题及答案C语言习题及答案C语言作为一门广泛应用于计算机科学领域的编程语言,其重要性不言而喻。

对于初学者而言,通过习题的练习可以帮助巩固基础知识,培养编程思维,提高解决问题的能力。

本文将介绍一些常见的C语言习题,并给出相应的答案,希望能对学习C语言的初学者有所帮助。

1. 习题一:编写一个程序,要求用户输入两个整数,然后输出它们的和。

答案一:```c#include <stdio.h>int main() {int num1, num2, sum;printf("请输入两个整数:\n");scanf("%d %d", &num1, &num2);sum = num1 + num2;printf("它们的和是:%d\n", sum);return 0;}```2. 习题二:编写一个程序,判断一个整数是否为偶数。

答案二:```c#include <stdio.h>int main() {int num;printf("请输入一个整数:\n");scanf("%d", &num);if (num % 2 == 0) {printf("%d是偶数。

\n", num);} else {printf("%d是奇数。

\n", num);}return 0;}```3. 习题三:编写一个程序,输出1到100之间所有能被3整除的数。

答案三:```c#include <stdio.h>int main() {int i;printf("1到100之间能被3整除的数有:\n");for (i = 1; i <= 100; i++) {if (i % 3 == 0) {printf("%d ", i);}}printf("\n");return 0;}```4. 习题四:编写一个程序,计算一个正整数的阶乘。

C语言1-5章复习题及参考答案

C语言1-5章复习题及参考答案

一.选择题1、若a为int类型,且其值为3,则执行完表达式a+=a-=a*a后,a的值是()。

A .-3 B.9 C.-12 D.62、若有定义:int a=8, b=5, c; 执行语句 c=a/b+0.4; 后,c的值为()。

A .1.4 B.1 C.2.0 D.23、有如下程序:void main(){int i,sum;for(i=1;i<=3;sum++)sum+=i;printf("%d\n",sum);}该程序的执行结果是()。

A .6 B.3 C.死循环 D.04、下列关于表达式的描述中,错误的是()。

A . 常量和变量都是表达式。

B. 运算符类型对应表达式的类型。

C. 每一个表达式都有自己的值。

D. 表达式必须以分号结尾。

5、C语言中,合法的长整型常数是()。

A . '\t' B.” A” C.65 D.a6、若已定义 x 和 y为double 类型,则表达式 x=1;y=(x+3)/2 的值是()。

A .1 B.2 C.2.00000 D.2.500007、表达式:10!=9的值是()。

A . true B. 非零值 C.0 D.18、以下程序的输出结果是()。

#include<stdio.h>void main(){printf("%d\n", NULL);}A . 不确定的 B.0 C.-1 D.19、请选出合法的C语言赋值语句。

()A . a=b=58 B.i++; C. a=58,b=58 D. k=int(a+b);10、假设 int b=2; 表达式(b>>2)/(b>>1)的值是()。

A .0 B.2 C.4 D.811、关于语句printf(“hello world\n”);,下列描述中错误的是()。

A . printf()是格式化输出函数,用于输出信息。

B. printf()括号中的内容为函数的参数。

c语言习题1-5章

c语言习题1-5章

C语言习题1-5章单项选择1.若有条件表达式 (exp)?a++:b--,则以下表达式中能完全等价于表达式(exp)的是()。

A:(exp==0)B:(exp!=0)C:(exp==1)D:(exp!=1)答案:B2.putchar函数可以向终端输出一个()。

A:整型变量表达式值B:实型变量值C:字符串D:字符或字符型变量值答案:D3.C语言中运算对象必须是整型的运算符是()。

A:%=B:/C:=D:〈=答案:A4.以下数据中,不正确的数值或字符常量是()。

A:8.9e1.2B:10C:0xff00D:82.5答案:A5.一个C语言程序是由()。

A:一个主程序和若干子程序组成B:函数组成C:若干过程组成D:若干子程序组成答案:B6.经过以下语句定义后,表达式z+=x>y?++x:++y的值为()。

int x=1,y=2,z=3;A:2B:3C:6D:5答案:C7.若int a=2,则执行完表达式a-=a+=a*a后,a的值是()。

A:-8B:-4C:-2D:0答案:D8.以下叙述中错误的是()。

A:可以通过typedef增加新的类型B:可以用typedef将已存在的类型用一个新的名字来代表C:用typedef定义新的类型名后,原有类型名仍有效D:用typedef可以为各种类型起别名,但不能为变量起别名答案:A9.结构化程序由三种基本结构组成,三种基本结构组成的算法()。

A:可以完成任何复杂的任务B:只能完成部分复杂的任务C:只能完成符合结构化的任务D:只能完成一些简单的任务答案:A10.以下关于运算符优先顺序的描述中正确的是()。

A:关系运算符<算术运算符<赋值运算符<逻辑运算符B:逻辑运算符<关系运算符<算术运算符<赋值运算符C:赋值运算符<逻辑运算符<关系运算符<算术运算符D:算术运算符<关系运算符<赋值运算符<逻辑运算符答案:C11.下列程序段的输出结果为()。

C语言1-5章复习题和参考答案.doc

C语言1-5章复习题和参考答案.doc

1、若a为int类型,且其值为3,则执行完表达式a+=a-=a*a后,a的值是()。

A .-3 B.9 C.-12 D.62、若有定义:int a=8, b=5, c;执行语句c=a/b+0.4;后,c的值为()。

A .1.4 B.l C.2.0 D.23、有如下程序:void main(){int i,sum;for(i=l;i<=3;sum++)sum+=i;printf("%d\n",sum);}该程序的执行结果是()。

A .6 B.3 C.死循坏D.O4、下列关于表达式的描述屮,错误的是()0A.常量和变量都是表达式。

B.运算符类型对应表达式的类型。

C.每一个表达式都有自己的值。

D.表达式必须以分号结尾。

5、C语言中,合法的长整型常数是()。

A.'\t'B."A"C.65D.a6、若已定义x和y为double类型,则表达式x=l;y= (x+3) /2的值是()。

A.lB.2C.2.00000D.2.500007、表达式:10!二9的值是()oA.trueB.非零值C.OD.l8、以下程序的输出结果是()。

#include<stdio.h>void main(){printf("%d\n", NULL);}A.不确定的B.OC.-lD.l9、请选出合法的C语言赋值语句。

()A . a=b=58 B.i++; C. a=58,b=58 D. k=int(a+b);10^假设int b=2;表达式(b»2)/(b»l)的值是()。

A .0 B.2 C.4 D.811>关于语句printf("hello world\rT);,下列描述中错误的是()。

A . printf()是格式化输出函数,用于输出信息。

B.printf()括号屮的内容为函数的参数。

C.printf()括号中的内容会全部输出到控制台上。

C语言程序设计试题及参考答案

C语言程序设计试题及参考答案

C语⾔程序设计试题及参考答案C语⾔程序设计⼀、选择题(共40分,每⼩题2分)1、以下叙述不正确的是(D)A、⼀个C源程序可由⼀个或多个函数组成B、⼀个C源程序必须包含⼀个main函数C、C程序的基本组成单位是函数D、在C程序中,注释说明只能位于⼀条语句的后⾯2、下列四个选项中,是不合法的⽤户标识符的选项是(B)A、3A、4A、<B、5、在CA、%B6ABCD7、在Cprintf(A、7B8、x、yA、C、9{intm,n;scanf(“%2d%3d”,&m,&n);printf(“m=%dn=%d\n”,m,n);}A、m=23n=45B、m=234n=56C、m=23n=456D、语句有错误10、若运⾏时,给变量x输⼊12,则以下程序的运⾏结果是(A)main() {intx,y;scanf(“%d”,&x);y=x>12?x+10:x-12;printf(“%d\n”,y);}A、0B、22C、12D、1011、C语⾔中while和do-while循环的主要区别(A)A、do-while的循环体⾄少执⾏⼀次B、while的循环控制条件⽐do-while的循环控制条件严格C、do-while允许从外部转到循环体内D、do-while的循环体不能是复合语句12、以下对⼆维数组的正确说明的语句是(C)A、inta[3][]B、floata(3,4)C、doublea[3][4]D、floata(3)(4)13、以下程序的输出结果是(C)main(){inti,x[3][3]={1,2,3,4,5,6,7,8,9};for(i=0printf(}A、1,514A、C、15}}A、30C、1016ABCD17、以下函数调⽤语句中含有的实参个数为(B)func((exp1,exp2,exp3),(exp4,exp5));A、1B、2C、4D、518、在C语⾔程序中,以下说法正确的是(B)。

算法与数据结构C语言习题参考答案1-5章

算法与数据结构C语言习题参考答案1-5章

绪论1.将下列复杂度由小到大重新排序:A.2n B.n! C.n5D.10 000 E.n*log2 (n)【答】10 000< n*log2(n)< n5< 2n < n!2.将下列复杂度由小到大重新排序:A.n*log2(n) B.n + n2 + n3C.24D.n0.5【答】24< n0.5< n*log2 (n) < n + n2 + n33.用大“O”表示法描述下列复杂度:A.5n5/2 + n2/5 B.6*log2(n) + 9nC.3n4+ n* log2(n) D.5n2 + n3/2【答】A:O (n5/2) B:O (n) C:O (n4) D:O (n2)4.按照增长率从低到高的顺序排列以下表达式:4n2 , log3n, 3n , 20n , 2000 , log2n , n2/3。

又n!应排在第几位?【答】按照增长率从低到高依次为:2000, log3n, log2n , n2/3 , 20n , 4n2 , 3n。

n!的增长率比它们中的每一个都要大,应排在最后一位。

5. 计算下列程序片断的时间代价:int i=1;while(i<=n){printf(“i=%d\n”,i);i=i+1;}【答】循环控制变量i从1增加到n,循环体执行n次,第一句i的初始化执行次数为1,第二句执行n次,循环体中第一句printf执行n次,第二句i从1循环到n,共执行n次。

所以该程序段总的时间代价为:T(n) = 1 + n + 2n = 3n+ 1 = O(n)6. 计算下列程序片断的时间代价:int i=1;while(i<=n){int j=1;while(j<=n){int k=1;while(k<=n){printf(“i=%d,j=%d,k=%d\n”,I,j,k);k=k+1;}j=j+1;}i=i+1;}【答】循环控制变量i从1增加到n,最外层循环体执行n次,循环控制变量j从1增加到n,中间层循环体执行n次,循环控制变量k从1增加到n,最内层循环体执行n次,所以该程序段总的时间代价为:T(n) = 1 + n + n{1 + n + n[1 + n + 2n +1] +1 +1}+ 1= 3n3 + 3n2 +4n +2= O(n3)2. 线性表1.试写一个插入算法int insertPost_seq(palist, p, x ),在palist所指顺序表中,下标为p的元素之后,插入一个值为x的元素,返回插入成功与否的标志。

c语言习题及详解答案

c语言习题及详解答案

c语言习题及详解答案C语言是一种广泛使用的编程语言,以其结构化、可移植和高效性而著称。

以下是一些C语言的习题以及相应的详解答案。

# 习题1:求和问题编写一个C程序,输入两个整数,输出它们的和。

解答:```c#include <stdio.h>int main() {int num1, num2, sum;printf("请输入两个整数:");scanf("%d %d", &num1, &num2);sum = num1 + num2;printf("这两个整数的和是:%d\n", sum);return 0;}```# 习题2:判断素数编写一个C程序,判断一个整数是否为素数。

解答:```c#include <stdio.h>#include <math.h>int isPrime(int n) {if (n <= 1) return 0;for (int i = 2; i <= sqrt(n); i++) {if (n % i == 0) return 0;}return 1;}int main() {int num;printf("请输入一个整数:");scanf("%d", &num);if (isPrime(num)) {printf("%d 是素数。

\n", num);} else {printf("%d 不是素数。

\n", num);}return 0;}```# 习题3:字符串反转编写一个C程序,输入一个字符串,然后输出它的反转。

解答:```c#include <stdio.h>#include <string.h>void reverseString(char str[]) {int len = strlen(str);for (int i = 0; i < len / 2; i++) {char temp = str[i];str[i] = str[len - i - 1];str[len - i - 1] = temp;}}int main() {char str[100];printf("请输入一个字符串:");scanf("%s", str);reverseString(str);printf("反转后的字符串是:%s\n", str);return 0;}```# 习题4:数组排序编写一个C程序,输入一个整数数组,然后使用冒泡排序算法对其进行排序。

C语言习题册答案集

C语言习题册答案集

第1章绪论一、选择题1~5 CABCD 6~10 BDCBC 11~15 AADCC二、程序填空题1、一个C语言程序是由函数组成的。

2、C源程序的后缀名为3、在C程序中,main()函数最多有 1 个。

4、一个C语言程序总是从主函数/main( ) 开始执行。

5、在C语言里输入是由scanf 函数实现,输出是由printf 函数实现。

6、C语言中,当复合语句多于一条时,要求有一对{ } 括号。

7、一个C源程序必须经过_ 编译__和_链接__生成exe文件才能运行8、在一个C程序中注释部分两侧的分界符分别为_/*_____和_*/___9、编写计算机所程序所使用的语言称为__程序设计语言______。

10、程序设计语言的发展经历了三个阶段__机器语言__、_汇编语言_和__高级语言__第2章基本数据类型及顺序结构程序设计一、选择题01~05 ACDDA 06~10 ACAAC 11~15 BDBBC16~20 DABAA 21~25 DBDAA 26~30 ADDCB31~35 BDCAB二、程序填空题1、__基本数据类型、_构造类型___ 和___其它类型_______。

2、 4 、 4 、8 、 1 。

3、double4、x<-5||x>5或abs(x)>55、y%2==1 或y%2!=06、x%3==0&&x%7==0或x%21==0 ,7、10 ,10 。

8、printf(“****a=%d, b=%d****”,a,b) 。

9、a:b ; c:t1 ;10、x%10 , x/10%10 ;三、程序阅读题1、G 。

2、2, 1 。

3、0 。

4、16 。

5、2,50 。

6、b 。

7、3 。

8、10,20,0 。

9、2, 。

10、67, e 。

第3章分支结构一、选择题01-05:DCBCD 06-10:CBBBC 11-15:CBBDB16-20:ACDAA 21-25:CADBC 26-30:CBBAD二、程序阅读题(共10题)1、20,0 。

C语言练习题1-5及参考标准答案

C语言练习题1-5及参考标准答案

练习题1及参考答案
1.单项选择题
(1)以下并非C语言的特点的是。

A. C语言简洁和紧凑
B.能够编制出功能复杂的程序
C. C语言可以直接对硬件进行操作
D. C语言移植性好
【答】B
(2)一个C程序的执行是从。

A.main()函数开始,直到main()函数结束
B.第一个函数开始,直到最后一个函数结束
C.第一个语句开始,直到最后一个语句结束
D.main()函数开始,直到最后一个函数结束
【答】A
(3)在C程序中,main()的位置。

A.必须作为第一个函数
B. 必须作为最后一个函数
C. 可以任意
D. 必须放在它所调用的函数之后
【答】C
(4)一个C程序是由。

A.一个主程序和若干子程序组成
B. 一个或多个函数组成
C. 若干过程组成
D. 若干子程序组成
【答】B
(5)下列说法正确的是。

A. 在执行C程序时不是从main()函数开始的
B. C程序书写格式限制严格,一行内必须写一个语句
C. C程序书写格式比较自由,一个语句可以分行写在多行上
D. C程序书写格式严格要求一行内必须写一个语句,并要求行号
【答】C
2. 填空题
(1)一个C源程序至少有①个main()函数和②个其他函数。

【答】①一②若干
(2)任何C语句必须以结束。

【答】分号
(3)C语言源程序的基本单位是。

【答】函数
(4)C编译程序的功能是。

【答】将C源程序编译成目标代码。

算法与数据结构C语言习题参考答案1-5章

算法与数据结构C语言习题参考答案1-5章

置*/ palist->element[q] = palist->element[q+1]; palist->n = palist->n - 1; /* 元素个数减 1 */ return 1 ; } return 0; } 3. 设有一线性表 e = (e0, e1 , e2 , …, e n-1 ),其逆线性 表定义为 e'= (e n-1 , …, e2 , e1 ,e0)。 请设计一个算法,将用顺序表表示的线性表置逆,要求逆线性表 仍占用原线性表的 空间。 【答】 数据结构 采用 2.1.2 节中顺序表的定义。 思路 考虑对数组 element[ ]进行置逆,即把第一个元素和最后一个 元素换位置,把第二个元素和倒数第二个元素换位置……。 注意 这种调换的工作只需对数组的前一半元素进行,所以设置整数变 量 count 用于存放数组长度的一半的值。大家可以考虑一下:为 什么不能对整个数组进行如上的对元素“换位置”的工作?(提
PNode p1; if(llist==NULL) return 0; p1=llist; while(p1!=NULL&&p1->link!=p)p1=p1->link; /*寻找 p 所指结 点的前驱结点*/ if(p1=NULL) return 0; PNode q=(PNode)malloc(sizeof(struct Node));/*申请新结点 */ if(q=NULL) {printf(“Out of space!!!\n”);return 0;} q->info=x; q->link=p1->link; p1->link=q; return 1; } 7.写一算法,在带头结点的单链表 llist 中,删除 p 所指的结点, 并返回删除成功与否的标 志。 【答】 数据结构 采用 2.1.3 节中单链表定义。 思想: 由于在单链表中,只有指向后继结点的指针,所以只有首先找到

C语言练习题及答案

C语言练习题及答案

C语言练习题及答案综合强化练习一一、选择题(每题1分,共40分)1、以下叙述正确的是( )A)C语言总是从第一个定义的函数开始执行B)在C程序中,要调用的函数必须在main函数中定义C)C程序的执行总是从main函数开始执行的D)C程序中的main函数必须放在程序的开始部分2、下列合法的用户标识符为( )A)_4sum B) static C) 1max D) #dtotal3、ch为字符型变量,则下面赋值语句正确的为( )。

A)ch="ABC" B) ch="A" C) ch= a D) ch=674、C语言中整形常量有哪几种形式( )A) 十进制、八进制、十六进制B) 二进制、十进制、八进制、十六进制C) 二进制、八进制、十六进制D) 二进制、十进制5、字符串" China "在内存中占用的字节数是( )A) 1 B) 2 C) 5 D) 66、int x,y; x=7/2;y=7/2.0;则x的值为( )A) 3.500000 3 B) 3 3.500000C) 3.500000 3.500000 D)3 37、下面程序int x=0x2B; printf("%d",x);的输出结果为( )A) 2B B) 0x2B C) 43 D) 448、实型常量用指数形式表示,下列哪一项不是合法的( )A) 3.65e3 B)0.356E3 C)356e3 D)3.56e3.09、设有语句int a=3;则执行了语句a-= a+=a*a;后变量a的值是( )A)0 B)3 C) -9 D) -310、下列字符中,错误的转义字符是( )A)'\085' B) '\\' C) '\0' D) '\n '11、下面程序的输出结果是( )int a=2;if(a=5) a=a+2;printf("%d ",a);A) 2 B) 4 C) 5 D)712、下列程序段的循环次数是( )int k=0;while(k= =0) printf("%d",k);k--; printf ("\n");A) 无限次B) 0 次C) 1次D)2次13、下列说法正确的是( )A) 在循环体中可以用break语句结束本次循环B) 在循环体中可以用continue语句结束本次循环C) break语句仅能使用在switch结构中D) 可以使用continue语句跳出switch结构14、以下正确的函数形式是()。

C语言习题(前五章)参考答案

C语言习题(前五章)参考答案

C 语言习题参考答案第一部分 C 语言基础一、判断题1.对 2.错 3.对 4.对 5.错 6.错第二部分 数据类型、运算符及表达式一、选择题 1.AD 2.B 3.(1)CD (2)BD (3)C (4) B 5.B6.D /*赋值时,若有溢出,则只截取低位*/ 7.(1)AB (2)BD (3)ABCD 8.C 9.D10.C /*A,B 赋值运算符左值只能是变量,不能是表达式或常量,D 是逗号语句*/12.B /*赋值运算符优先级比逗号表达式高*/ 13.A14.D /*八进制数中,合格字符只能是0~7*/ 15.A /*二进制补码*/16.A /*八进制数中,合格字符只能是0~7*/ 17.D 19.B 20.D21.B /*赋值运算符右值的数据类型强制转换为左值的数据类型*/ 22.ABD 23.D 24.C 25.ABD 二、填空题1. 1 , -128~127 ; 2 , -32768~32767 ; 4 ,-2147483648~2147483647 ; 4 ,383810~10 。

3. 单引号, 双引号 。

4. 优先级 , 结合性 。

6. 2.5 。

7. 3.5 。

11. 24 , 10 , 60 , 0 , 12 , 0 12. double 。

14. 9 。

16. 1.5 , 1 。

18. 2 , -2 。

/*余数符号仅由被除数的符号决定*/ 三、判断题1.错 /*如常量*/3.错 /*如float 只能准确表示7位有效数字,多余的位数是近似表示*/4.错5.对6.对 10.错 四、简答题4写出下列各数的二进制补码(写成16为二进制形式):32: 0000 0000 0010 0000 -1: 1111 1111 1111 1111 -32768:1000 0000 0000 0000 2002: 0000 0111 1101 0010 -128: 1111 1111 1000 0000 0: 0000 0000 0000 0000 五、程序阅读 1.aabb[4个空格]cc[6个空格]c A 6 2.9,11,9,10第三部分 顺序结构一、选择题 2.D3.B /*假设int 占2个字节*/4.D5.C 7.C 8.B 9.D 10.B11.C /*D ,scanf 函数的格式符中不能规定小数位数*/ 12.A /*格式控制符:%2d%2d%3d,输入时,前两个空格对应的数字赋给a ,紧挨着的两个空格的位置赋给b*/ 13.C 14.D 15.D 二、填空题 6. %8. -10 12 410.34[回车] 题目补充:scanf 函数的调用形式为:scanf(“%d%d%f ”,&i,&j,&x); 。

C语言1-5章复习题 参考答案

C语言1-5章复习题 参考答案

一.选择题1、若a为int类型,且其值为3,则执行完表达式a+=a-=a*a后,a的值是(C)。

A .-3 B.9 C.-12 D.62、若有定义:int a=8,b=5,c;执行语句c=a/b+0.4;后,c的值为(B)。

A .1.4 B.1 C.2.0 D.23、有如下程序:void main(){int i,sum;for(i=1;i<=3;sum++)sum+=i;printf("%d\n",sum);}该程序的执行结果是(C)。

A .6 B.3 C.死循环 D.0 。

4、下列关于表达式的描述中,错误的是(D)。

A . 常量和变量都是表达式。

B. 运算符类型对应表达式的类型。

C. 每一个表达式都有自己的值。

D. 表达式必须以分号结尾。

5、C语言中,合法的长整型常数是()。

A . '\t' B.” A” C.65 D.a6、若已定义x和y为double类型,则表达式x=1;y=(x+3)/2的值是(C)。

A .1 B.2 C.2.00000 D.2.500007、表达式:10!=9的值是(D)。

A . true B. 非零值 C.0 D.18、以下程序的输出结果是(B)。

#include<stdio.h>void main(){printf("%d\n",NULL);}A . 不确定的 B.0 C.-1 D.19、请选出合法的C语言赋值语句。

(B)A . a=b=58 B.i++; C. a=58,b=58 D. k=int(a+b);10、假设int b=2;表达式(b>>2)/(b>>1)的值是(A)。

A .0 B.2 C.4 D.811、关于语句printf(“hello world\n”);,下列描述中错误的是(C)。

A . printf()是格式化输出函数,用于输出信息。

B. printf()括号中的内容为函数的参数。

C语言练习题及答案

C语言练习题及答案

C语言练习题及答案以下是一些C语言练习题及其答案。

这些练习题旨在帮助初学者巩固C语言的基础知识,并提供了相应的解答。

每个练习题都具有一定的难度,涵盖了C语言的不同概念和语法规则。

通过完成这些练习题,读者能够提高自己的编程能力,并更好地理解C语言的使用。

练习题1:编写一个程序,计算并输出两个整数的和。

```c#include <stdio.h>int main() {int num1, num2, sum;printf("请输入第一个整数: ");scanf("%d", &num1);printf("请输入第二个整数: ");scanf("%d", &num2);sum = num1 + num2;printf("两个整数的和是: %d\n", sum);return 0;}```练习题2:编写一个程序,接受用户输入的半径,计算并输出圆的面积和周长。

假设圆周率为3.14,使用浮点数进行计算。

```c#include <stdio.h>int main() {float radius, area, circumference;printf("请输入圆的半径: ");scanf("%f", &radius);area = 3.14 * radius * radius;circumference = 2 * 3.14 * radius;printf("圆的面积是: %.2f\n", area);printf("圆的周长是: %.2f\n", circumference);return 0;}```练习题3:编写一个程序,判断一个整数是否为奇数或偶数。

如果是奇数,则输出"奇数",否则输出"偶数"。

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

练习题1及参考答案1.单项选择题(1)以下并非C语言的特点的是?????。

A.?C语言简洁和紧凑B.能够编制出功能复杂的程序C.?C语言可以直接对硬件进行操作D.?C语言移植性好【答】B(2)一个CA.?main()B.C.D.?main()【答】A(3)在CA.B.C.可以任意D.【答】C(4)一个CA.B.C.D.【答】B(5A.在执行CB.?CC.?CD.?C【答】C2.填空题(1)一个C源程序至少有??①??个main()函数和??②??个其他函数。

【答】①一?②若干(2)任何C语句必须以?????结束。

【答】分号(3)C语言源程序的基本单位是?????。

【答】函数(4)C编译程序的功能是?????。

【答】将C源程序编译成目标代码练习题2及参考答案1.单项选择题(1)以下字符串为标识符的是?????。

A._MY???????????????B.2_2222??????????????????C.short??????????????????D.LINE5 【答】AA.n%=(m%=5)??????????????????????????B.n%=(m-m%5)C.n%=m-m%5?????????????????????????D.(n%=m)-(m%=5)【答】A、B、C、D选项各表达式的值分别是0、2、2、3。

本题答案为D。

(8)以下程序的运行结果是?????。

#include<stdio.h>main(){???inti=5,j=6,m=i+++j;???printf("%d,%d,%d\n",i,j,m);}A.6,6,11??????B.5,6,11??????C.5,6,12??????D.6,6,12【答】m=i+++j等价于m=(i++)+j。

本题答案为A。

(9)以下程序的运行结果是?????。

#include<stdio.h>voidmain(){???doublef=3.14159;???intn;???n=(int)(f+10)%3;???printf("%d\n",n);的值不改变。

??②??·返回两个整数x、y中较大者。

??③??·返回三个整数x、y和z中最大者。

??④??【答】①c=(c>='A'&&c<='Z')?c-'A'+'a':c②d=(d>='0'&&d<='9')?d-'0':d③(x>y)?x:y④(x>y)?(x>z?x:z):(y>z?y:z)或(x>y&&x>z)?x:(y>z?y:z)(4)以下程序的运行结果是?????。

#include<stdio.h>#include<string.h>main(){??chars[]="ab\n\\\'\r\b";??printf("%d,%d\n",sizeof(s),strlen(s));}【答】字符串s由字符'a'、'b'、'\n'、'\\'、'\''、'\r'、'\b'等7个字符组成,故长度为7,但字符串本身有一个结束标志'\0'。

所以,s的长度为7,在内存中占用8个字节。

输出为:8,7。

(5)以下程序的运行结果是?????。

#include<stdio.h>main(){(8)以下程序的运行结果是?????。

#include<stdio.h>main(){???inta=1;???charc='a';???floatf=2.0;???printf("①:%d\n",a+2!=c-100);????printf("②:%d\n",(a>c)>=(f>4));????printf("③:%d\n",!a==!f);????printf("④:%d\n",(!a&&1)!=(!c||1));????printf("⑤:%d\n",(!a>2)?3:0)<((f!=1)?0:1);????printf("⑥:%d\n",(1,2,3)==(3,3,3));}【答】①:1(a+2=3,c-100=-3,表达式结果=1(真))②:1(a>c的结果是0(假),f>4的结果是0,表达式结果=1)③:1(!a的结果是0,!f的结果是0,表达式结果=1)④:1(!a&&1的结果是0,!c||1的结果是1,表达式结果=1)⑤:0(!a>2的结果是0,(!a>2)?3:0的结果是0,f!=1的结果是1,(f!=1)?0:1的结果是0,表达式结果练习题3及参考答案1.单项选择题(1)以下说法正确的是?????。

A.输入项可以为一个实型常量,如scanf("%f",3.5)B.只有格式控制没有输入项也能进行正确输入,如scanf("%d")A.scanf("%6.2f%d",&a,&b);????????????????????B.scanf("%f%n",&a,&b);C.scanf("%f%3o",&a,&b);????????????????D.scanf("%f%f",&a,&b);【答】C(7)字母a的ASCII码为97,则下列语句的运行结果为????。

chara='a';a--;printf("%d,%c\n",a+'2'-'0',a+'3'-'0');A.b,c????????????????????????????????????????????B.a--运算不合法,故有语法错C.98,c???????????????????????????????????????????D.格式描述和输出项不匹配,输出无定值【答】C(8)若k1,k2,k3,k4均为int型变量,为了将整数10赋给k1和k3,将整数20赋给k2和k4,则对应以下scanf()函数调用语句的正确输入方式是????。

scanf("%d%d",&k1,&k2);scanf("%d,%d",&k3,&k4);A.1020B.1020C.10,20D.102010201020(11)有如下程序,输入数据12345↙后,x的值是?①?,y的值是?②?。

#include<stdio.h>main(){???intx;???floaty;???scanf("%3d%f",&x,&y);}①A.12????????????????????B.123??????????????????C.12345?????????????????????D.0②A.12.000000?????????B.345.000000?????????????C.12345.000000??????????D.0.000000【答】①A?②B(12)有如下程序,输入数据9876543210↙后,程序的运行结果是?????。

#include<stdio.h>main(){???inta;???floatb,c;???scanf("%2d%3f%4f",&a,&b,&c);???printf("a=%d,b=%f,c=%f\n",a,b,c);{???floata=3.1415;???printf("|%-6.0f|\n",a);}A.|3|?????????????B.|000003|???????????C.|3.1415|???????????????????D.|3.0| 【答】A(16)以下程序的运行结果是?????。

#include<stdio.h>main(){???inti=010,j=10;???printf("%d,%d\n",++i,j--);}A. 11.10??????????????B.9,10????????????????C.010,9?????????????????????D.10,9 【答】B(17)以下程序的运行结果是?????。

#include<stdio.h>main(){(3)以下程序的运行结果是?????。

#include<stdio.h>main(){???floatf=31.41592;???printf("%f,%e",f,f);}【答】31.415920,3.141592e+001(4)以下程序的运行结果是?????。

#include<stdio.h>{???intx=0177;???printf("%3d,%6d,%6o,%6x,%6u\n",x,x,x,x,x); }【答】127,127,177,7f,127(5)以下程序的运行结果是?????。

#include<stdio.h>main(){???charc;???scanf("%3c",&c);???printf("c=%c\n",c);}【答】c=A(9)以下程序输入100↙后,其运行结果是?????。

#include<stdio.h>main(){???scanf("%o",&n);???printf("n=%d\n",n);}【答】n=64(10)以下程序输入x=1.23,y=50↙后,其运行结果是?????。

#include<stdio.h>main(){???floatx,y;VC++6.0#include<stdio.h>main(){???charc;???printf("输入字符:");???scanf("%c",&c);???printf("字符%c的ASCII码为%d\n",c,c);}(2)编写一个程序,输入一个字符,依次输出其前导字符、该字符和后续字符。

相关文档
最新文档