以下为《c语言练习集(含答案)》的无排版文字预览,完整格式请下载

下载前请仔细阅读文字预览以及下方图片预览。图片预览是什么样的,下载的文档就是什么样的。

《C语言程序设计》

习题集

班级:

学号:

姓名:

第1章 C语言概述

1.1 基本知识点

(C语言的特点

(C程序基本结构

(C程序的运行过程

(C程序的语法规则

(C程序的开发过程

1.2 练习题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源程序编译成目标代码

第2章 数据类型及其运算

2.1 基本知识点

(C语言标识符的定义

(C语言的数据类型

(C语言的基本数据类型(整型、单精度型、双精度型、字符型和枚举型)

( 各种修饰符与基本数据类型的组合方式

( 各种数据类型表示的数值范围以及数据所占内存空间的大小

( 常量:整型、实型及符号常量

( 变量:变量的定义与初始化

( 运算符与表达式:运算符的优先级及结合性

( 算术表达式中数据间的混合运算与类型转换

( 数据类型的隐含转换和强制转换

( 赋值运算符与赋值表达式

( 条件运算符和条件表达式

2.2 练习题2及参考答案

1. 单项选择题

(1)以下字符串为标识符的是 。

A. _MYB. 2_2222C. shortD. LINE 5

【答】A

(2)下列符号可以作为变量名的是 。

A. +aB. *pC. _DAYD. next day

【答】C

(3)设c是字符变量,则以下表达式正确的是 。

A. c=666B. c='c'C. c="c"D. c="abcd"

【答】B

(4)23+'m'+3.6-123.45/'b'的结果是 型数据。

A. charB. doubleC. int D. long int

【答】3.6和123.45均为double型,运算结果也是double型。本题答案为B。

(5)若变量已正确赋值,以下符合C语言语法的表达式是 。

A. a=a+7;B. a=7+b+c,a++

C. int(12.3%4)D. a=a+7=c+b

【答】选项A错误,以分号结尾是一个语句而不是表达式;选项B正确,是一个逗号表达式;选项C错误,因为%求模运算的两个运算数必须均为整数;选项D错误,给一个表达式(a+7)而非变量赋值是不正确的。本题答案为B。

(6)整型变量x=1,y=3,经下列计算后,x的值不等于6的表达式是 。

A. x=(x=1+2,x*2)B. x=y>2?6:5

C. x=9-(--y)-(--y)D. x=y*(int)(4.8/2)

【答】选项A的计算过程——x=1+2=3,再计算x=x*2=6;选项B的计算过程——y>2为真,x=6;选项C的计算过程——式中有两个--运算,最后y=1,x=9-1-1=7;选项D的计算过程——x=y*(int)(4.8/2)=y*2=6。本题答案为C。

(7)若定义

int m=7,n=12;

则能得到值为3的表达式是 。

A. n%=(m%=5)B. n%=(m-m%5)

C. n%=m-m%5D. (n%=m)-(m%=5)

【答】A、B、C、D选项各表达式的值分别是0、2、2、3。本题答案为D。

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

#include

main()

{

int i=5,j=6,m=i+++j;

printf("%d,%d,%d\n",i,j,m);

}

A. 6,6,11B. 5,6,11C. 5,6,12D. 6,6,12

【答】m=i+++j等价于m=(i++)+j。本题答案为A。

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

#include

void main()

{

double f=3.14159;

int n;

n=(int)(f+10)%3;

printf("%d\n",n);

}

A. 1B. 0C. 2D. 3

【答】f+10=13.14159,(int)(f+10)=13,13%3=1。本题答案为A。

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

#include

void main()

{

int n,i=2,j=4;

n=(++i==j--);

printf("%d\n",n);

}

A. 0B. 1C. 2D. 3

【答】++i返回3,j--返回4,两者不等,故n=0。本题答案为A。

2. 填空题

(1)表达式语句与表达式的不同是 。

【答】语句必须以分号结尾,而表达式结尾没有分号;语句可以出现在函数体中数据定义或声明语句后面的任何位置,而表达式只能出现在语句中规定的位置或表达式中(嵌套出现)。

(2)在C语言中可以利用 将一个表达式的值转换成指定的类型。

【答】强制类型转换

(3)写出完成下列功能的表达式:

XXXXX 如果变量c是大写字母,则将c转换成对应的小写,否则c的值不改变。 ①

XXXXX 如果d是数字,则将d转换成相应的整数,否则d的值不改变。 ②

XXXXX 返回两个整数x、y中较大者。 ③

XXXXX 返回三个整数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

#include

main()

{

char s[]="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

main()

{

int a=2,b=4,c=6,x,y;

y=(x=a+b),(b+c);

printf("y=%d,x=%d\n",y,x);

}

【答】结果为y=6,x=6。

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

#include

main()

{

char a,b;

a='a';b='b';

a=a-32;b=b-32;

printf("%c,%c,%d,%d\n",a,b,a,b);

}

【答】A,B,65,66

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

#include

main()

{

int i,j,x,y;

i=5;j=7;

x=++i;y=j++;

printf("%d,%d,%d,%d\n",i,j,x,y);

}

【答】执行x=++i后,i=6,x=6;执行y=j++后,j=8,y=7;所以输出为:6,8,6,7。

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

#include

main()

{

int a=1;

char c='a';

float f=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)

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,表达式结果=0)

⑥:1((1,2,3)表达式的结果是3,(3,3,3)的结果是3,表达式结果=1)

第3章 顺序结构程序设计

3.1 基本知识点

( 程序的三种基本控制结构

( 顺序执行语句、表达式语句、函数调用语句、复合语句和空语句

( 格式化输出函数printf()的使用方法

( 格式化输入函数scanf()的使用方法

( 单字符输入函数getchar()和输出函数putchar()的使用方法

3.2 练习题3及参考答案

1. 单项选择题

(1)以下说法正确的是 。

A. 输入项可以为一个实型常量,如scanf("%f",3.5)

B. 只有格式控制没有输入项也能进行正确输入,如scanf("%d")

C. 当输入一个实型数据时,格式控制部分应规定小数点后的位数,如scanf("%4.2f",&f)

D. 当输入数据时,必须指明变量的地址,如scanf("%f",&f)

【答】D

(2)若a为整型变量,则以下语句 。

a=-2L;

printf("%d\n",a);

A. 赋值不合法B. 输出值为-2 C. 输出为不确定值D. 输出值为2

【答】B

(3)若x和y均定义为int型,z定义为double型,以下scanf()函数调用语句不合法的是 。

A. scanf("%d%lx,%le",&x,&y,&z);B. scanf("%2d*%d%lf",&x,&y,&z);

C. scanf("%x%*d%o",&x,&y);D. scanf("%x%o%6.2f",&x,&y,&z);

【答】scanf()函数中没有精度控制。本题答案为D。

(4)若a,b,c均定义为int型,要给它们输入数据,正确的输入语句是 。

A. read(a,b,c);B. scanf("%d%d%d",a,b,c);

C. scanf("%D%D%D",a,b,c); D. scanf("%d%d%d",&a,&b,&c);

【答】D

(5)若有定义和语句:

int n=10;

printf("%\n",n);

其输出结果是 。

A. 输出10B. 输出一空行C. 没有输出D. 编译不通过

【答】D

(6)若a是float型变量,b是unsigned型变量,以下输入语句中合法的是 。

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,则下列语句的运行结果为 。

char a='a';

a--;

printf("%d,%c\n",a+'2'-'0',a+'3'-'0');

A. b,cB. a--运算不合法,故有语法错

C. 98,cD. 格式描述和输出项不匹配,输出无定值

【答】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. 1020

B. 1020

C. 10,20

D. 1020

1020

1020

10,20

10,20

【答】D

(9)有如下程序,输入数据12345678!櫤螅瑇的值是 ① ,y的值是 ② 。

#include

main()

{

int x;

float y;

scanf("%3d%f",&x,&y);

}

① A. 12345B. 123C. 45D.345

② A. 45.000000B. 45678.000000 C. 678.000000D.123.000

【答】① B ② A

(10)有如下程序,输入数据25,13,10!櫤螅返脑诵薪峁? 。

#include

main()

{

int x,y,z;

scanf("%d%d%d",&x,&y,&z);

printf("x+y+z=%d\n",x+y+z);

}

A. x+y+z=48B. x+y+z=35

C. x+y+z=38D. 不确定值

【答】输入的数据与scanf()函数的格式不匹配。本题答案为D。

(11)有如下程序,输入数据12345!櫤螅瑇的值是 ① ,y的值是 ② 。

#include

main()

{

int x;

float y;

scanf("%3d%f",&x,&y);

}

① A. 12B. 123C. 12345D. 0

② A. 12.000000B. 345.000000C. 12345.000000D. 0.000000

【答】① A ② B

(12)有如下程序,输入数据***10!櫤螅绦虻脑诵薪峁? 。

#include

main()

{

int a;

float b,c;

scanf("%2d%3f%4f",&a,&b,&c);

printf("a=%d,b=%f,c=%f\n",a,b,c);

}

A. a=98,b=765,c=4321B. a=10,b=432,c=8765

C. a=98,b=765.000000,c=4321.000000D. a=98,b=765.0,c=4321.0

【答】C

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

#include

main()

{

float a=3.1415;

printf("|%6.0f|\n",a);

}

A. |3.1415|B. | 3.0|C. | 3|D. | 3.|

【答】C

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

#include

main()

{

float a=3.1415;

printf("|%06.0f|\n",a);

}

A. |000003|B. |3.1415|C. |00003.0|D. | 3|

【答】A

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

#include

main()

{

float a=3.1415;

printf("|%-6.0f|\n",a);

}

A. |3|B. |000003|C. |3.1415|D. |3.0|

【答】A

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

#include

main()

{

int i=010,j=10;

printf("%d,%d\n",++i,j--);

}

A. 11.10B. 9,10C. 010,9D. 10,9

【答】B

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

#include

main()

{

int x=10,y=10;

printf("%d,%d\n",x--,--y);

}

A. 10,10B. 9,9C. 9,10D. 10,9

【答】D

2. 填空题

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

#include

main()

{

float f=3.***;

printf("%f,%5.4f,%3.3f",f,f,f);

}

【答】3.141593,3.1416,3.142

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

#include

main()

{

float f=3.5;

printf("%f,%g",f,f);

}

【答】3.500000,3.5

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

#include

main()

{

float f=31.41592;

printf("%f,%e",f,f);

}

【答】31.415920,3.141592e+001

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

#include

main()

{

int x=0177;

printf("%3d,%6d,%6o,%6x,%6u\n",x,x,x,x,x);

>>>>>>内容过长,仅展示头部和尾部部分文字预览,全文请查看图片预览。<<<<<<

ent),SEEK_SET);

/*由序号直接跳到主文件的这个记录*/

fread(&s,sizeof(student),1,mfile);

printf(" 新家庭地址:",no);

gets(newaddr);

strcpy(s.address,newaddr);

fseek(mfile,(i-1)*sizeof(student),SEEK_SET);

/*由于前面执行fread函数,改变了文件指针,需重新定位,或使用

fseek(mfile,-(long)sizeof(student),SEEK_CUR)语句回跳

一个记录位置*/

fwrite(&s,sizeof(student),1,mfile);

printf("%s,%s,%c,%d,%s,%s,%s\n",s.num,s.name,s.sex,

s.age,s.address,s.department,s.speciality);

}

}

}

fclose(mfile);

}

[文章尾部最后500字内容到此结束,中间部分内容请查看底下的图片预览]

以上为《c语言练习集(含答案)》的无排版文字预览,完整格式请下载

下载前请仔细阅读上面文字预览以及下方图片预览。图片预览是什么样的,下载的文档就是什么样的。

c语言运算符计算作业题,c语言练习集(含答案)相关推荐

  1. c语言运算符优先级结合,C语言运算符优先级及结合性

    今天去翻了下C语言运算符的优先级和结合性,发现当初学习的时候就没认真记住,惭愧.发现一篇讲得不错的文章,编辑了下转来供以后翻阅. C语言运算符优先级表(由上至下,优先级依次递减) 运算符 结合性 () ...

  2. c语言 运算符的作用,C语言运算符

    原标题:C语言运算符 运算符 在应用程序中,经常会对数据进行运算,为此,C语言提供了多种类型的运算符,即专门用于告诉程序执行特定运算或逻辑操作的符号.根据运算符的作用,可以将 C语言中常见的运算符分为 ...

  3. C语言编程计算y,C语言编程入门之--第五章C语言基本运算和表达式-part4

    5.3.5 和二进制极为密切的运算符 本小节的运算符需要借助二进制概念来理解. 二进制数据中,比如一个字节的数据,它的十进制为228,二进制就为11100100,如图5.11, 注意:如果不懂怎么转换 ...

  4. c语言版计算坐标方位角,C语言辛普森道路测量正反算,秒杀5800计算器

    C语言辛普森道路测量正反算,秒杀5800计算器 /*道桥测量用C语言源程序*/ /*此版本为未完成版本,只能由路线的平曲线元素计算全线中桩坐标或反算桩号*/ /*本人小白,拿出来纯属希望能得到高手指点 ...

  5. c语言运算符优先级结合,C语言运算符优先级和结合性

    4. 什么是AJAX 术语Ajax用来描述一组技术,它使浏览器可以为用户提供更为自然的浏览体验.在Ajax之前,Web站点强制用户进入提交/等待/重新显示范例,用户的动作总是与服务器的"思考 ...

  6. c语言运算符的语法,C语言中条件运算符的语法为

    条件运算符的语法为: (条件表达式)?(条件为真时的表达式):(条件为假时的表达式) 例如: x=a 条件运算符构成一个表达式.它是C++中唯一一个3元运算符,它们之间用"?"和& ...

  7. 平年用c语言的计算方式,C语言平年闰年问题

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 { printf("请输入正确日期!/n"); goto aaa; } } int LeapYear(int intoYear,int ...

  8. c语言 函数计算0869,c语言编程- 微积分程序

    满意答案 辛普森法 #include #include #define F(X) (4.0/(1+X*X)) static float EPS = 1.0E-14; static int COUNT= ...

  9. c语言运算符ascii表,C语言运算符优先级和ASCII表

    ExecutorService线程池 ExecutorService 建立多线程的步骤: 1.定义线程类 class Handler implements Runnable{} 2.建立Executo ...

最新文章

  1. 读CopyOnWriteArrayList有感
  2. 【支付专区】之解析微信支付返回xml
  3. 如何在 C# 中使用只读的 Collections
  4. [原]调试实战——程序CPU占用率飙升,你知道如何快速定位吗?
  5. c语言switch为什么要加break,c语言学习笔记 switch case语句为什么要加break
  6. python装饰器class_PYTHON里的装饰器能装饰类吗
  7. 互联网巨头的“搜索”暗战
  8. python爬虫学习研究
  9. Linux系统基础原理
  10. 存储远程复制缺点_远程医疗有一个隐藏的缺点
  11. HTML表格表格标签的属性
  12. 插头DP_最小表示法 模板详解
  13. 程序员从互联网跳央企,晒一天工作和收入
  14. Matlab如何在一个窗口绘制多张子图
  15. 常用软件的配置与使用
  16. realtek没有禁用前面板_为何我realtek HD没有禁用前面板检测选项?
  17. Spark Submit任务提交流程
  18. UI 自动化中的分层设计
  19. CentOS 之 make 安装
  20. [admin]-02

热门文章

  1. Fresnel效果和颜色色散(Using OpenGL Cg)
  2. 十、Spring Boot 安全管理(2)
  3. 蓝桥杯基础练习-数的读法
  4. 本田ST1300摩托发现问题 高速行驶可能剧烈摆动
  5. visual studio比较文件差异(diff操作)
  6. 零基础编程——块语言编程游戏攻略之捉虫篇
  7. VXLAN基本概念及静态VXLAN隧道配置
  8. 程序员吐槽工资和Bug数量挂钩!网友:不写代码就能最高绩效
  9. SQLServer数据库新建查询提示“目录名称无效。 (mscorlib)”
  10. 使用SAX解析XML文件出现中文乱码问题(dom4j)