C语言期末考试测试题及答案
目录
期末复习:
1、什么叫分配内存,什么叫释放内存:
2、变量为什么必须初始化:
3、详细说明系统是如何执行:int i=5;这个语句的
4、请详细列出C语言所有的基本类型:
5、在printf函数中int用%d输出,请问longint、char、double、float分别用什么输出?
6、函数的优点是什么?
7、谈谈你对函数的理解:
8、什么是指针,什么是地址,什么是指针变量,三者之间是什么关系?
9、请写出静态变量和动态变量的异同:
10、C语言中那些知识点是我们学习的重点,请一一列举出来:
11、for语句题目1:
12、for语句题目2:
13、for语句题目3:
14、判断下列程序语法上是否错误:
15、编程实现:
16、若变量已正确定义,有以下程序段:
17、执行以下程序后,输出‘#’号的个数是:
18、有以下程序:
19、若有一些定义和语句:
20、有以下程序:
21、以下程序:
22、以下程序:
23、进制题目:
24、以下叙述正确的是:
25、以下叙述正确的是:
编程题:
1、
2、
3、
4、
5、
期末复习:
1、什么叫分配内存,什么叫释放内存:
操作系统该某一块内存空间的使用权限分配给该程序叫分配内存
操作系统把分配给该程序的内存空间的使用权利收回,该程序就不能够再使用这一块内存空间,这叫释放内存。
附注:释放内存不是把该内存的内容清零
2、变量为什么必须初始化:
不初始化,则变量通常是垃圾值
不初始化,输出语句,编译会报错。
3、详细说明系统是如何执行:int i=5;这个语句的
1、vs2019软件请求操作系统为i分配存储空间
2、操作系统会在内存中寻找一块空闲的局域,把该区域当i来使用
3、vs2019会把i和这块空闲区域关联起来,今后对字母i操作就是对这块空闲的区域操作
4、把5存储到字母i所关联的内存区域中
附注:所谓的内存区域也就是内存的一块存储单元
4、请详细列出C语言所有的基本类型:
int longint shorint char float double
5、在printf函数中int用%d输出,请问longint、char、double、float分别用什么输出?
%ld %c %lf %f
6、函数的优点是什么?
1、避免重复性操作
2、有利于程序的模块化
7、谈谈你对函数的理解:
略,看个人笔记函数部分
8、什么是指针,什么是地址,什么是指针变量,三者之间是什么关系?
地址是内存单元的编号,指针就是地址,指针和地址是同一个概念
指针变量是存放内存单元编号的变量,指针变量和指针是两个完全不同的概念
只不过人们通常把指针变量简称指针
9、请写出静态变量和动态变量的异同:
相同:
都需要分配内存
不同
静态变量是由系统自动分配的,自动释放,程序员无法在程序运行的过程中手动分配,也无法在程序运行的过程中手动释放
静态变量是在栈中分配的
函数终止之后,静态变量的存储空间才会被系统自动释放
动态变量是由程序员手动分配的,手动释放,程序员可以在程序运行的过程中手动分配,可以在程序运行的过程中手动释放
动态变量是在堆中分配的
程序员可以函数执行的过程当中的任何一个时刻手动的释放动态变量的空间,不需要等到函数终止时才释放。
10、C语言中那些知识点是我们学习的重点,请一一列举出来:
流程控制 函数 指针 静态内存和动态内存
11、for语句题目1:
for (1; 2; 3)
A;
B;1、2成立,会继续执行那个语句:A
2、3执行完毕后,会继续执行那个语句:2
3、A执行完毕,会继续执行那个语句:3
4、1总共执行几次:1
12、for语句题目2:
for (1; 2; 3)
for(4;5;6){
A;
B;
}
C;
1、6执行完毕,会继续执行那个语句:5
2、5成立,会继续执行那个语句:A
3、5不成立,会继续执行那个语句:3
4、2不成立,会继续执行那个语句:C
5、2成立,会继续执行那个语句:4
6、A和B语句是否一定会被执行:不一定
7、C语句是否一定会执行:一定
13、for语句题目3:
for(1;2;3){
while(4){
5;
}
6;
if(7){
8;
}
9;
}
10;
一次顺序:12454(不成立)67(成立)8932(不成立)10(可以看黑色读一遍)
1、5执行完毕后,会继续执行那个文件:4
2、如果8是break语句,则8执行完毕之后会继续执行那个语句:10
3、如果7不成立,会继续执行那个语句:9
14、判断下列程序语法上是否错误:
A:int *p; *p=10 (x,10不是地址)
B:char *p; char ch= A; p=&ch; (x,字符要用单引号)
C:int i.j; i=j=0; int *p; p=&; (√)
D:int *p; int **q; q=&p; (√)多级指针内容
E:int *p; int i=5; p=&i; *p=10;(√)
15、编程实现:
如果x大于0,则y为1,如果x小于0,则y为-1,如果x等于0,则y=0;
以下程序段中不能依据x值正确计算y值的是:CD
16、若变量已正确定义,有以下程序段:
17、执行以下程序后,输出‘#’号的个数是:
i 1 2 3 4
j 0 1 2 3
1+2+3=6
内层结束后回到外层for循环内层的值会回到初始。
18、有以下程序:
s=s+(i+1)
i 1 3 5 7 9
s=1+1+3+1+5+1+7+1+9+1
19、若有一些定义和语句:
NULL本质也是零,而这个零不代表数字零,而表示的是内存单元的编号零(地址0)
我们计算机规定了,以零为编号的存储单元的内容不可读,不可写
20、有以下程序:
*a接受p1 (&c1) *b接受p2(&c2)
a=b a变成c2地址 *a表示a a++ a+1=b(ascall)
A的值没有修改,所以输出Ab
21、以下程序:
k 2 4
##2 ##4
22、以下程序:
#include <stdio.h>
void main()
{
int x = 1, y = 0, a = 0, b = 0;switch (x)
{
case 1:
switch (y)
{
case 0:
a++;
break;//执行break把这个switch (y)终止了
case 1:
b++;
break;//执行break把这个switch (y)终止了
}
case 2:
a++;
b++;
break;//执行break把switch (x)终止了执行输出
case 3:
a++;
b++;
}
printf("a=%d,b=%d\n", a, b);//a=2,b=1
}终止的语句记得看分号,分清楚已经结束那个语句
23、进制题目:
解析:
128 64 32 16 8 4 2 1
1 1 0 0 1 0 0---10进制10转2进制
1、100、100---砍3位
1 421 421
得出144
128 64 32 16 8 4 2 1
1 1 0 0 1 0 0---10进制10转2进制
1100100---砍四位
110、0100
421 8421
得出64
24、以下叙述正确的是:
25、以下叙述正确的是:
编程题:
1、
代码解析:
# include <stdio.h>
int main() {int i;int sum = 0;for (i = 1; i <= 1000; i++) {sum = sum + i;}printf("%d\n", sum);return 0;
}
/*
编程求出1---1000之和输出结果:500500*/
2、
代码解析:
#include <stdio.h>
int main() {int i;float sum = 0;for (i = 1; i <= 100; i++) {sum = sum + 1 / (float)(i);//强制类型转换把后面i的值强制转换为float 一个整数/小数商是小数//sum=sum+(float)(1/i);这样写是错误的因为:sum=sum+1/1=1.000000 + 0.000000 ...0.000000//更简单的方法是:sum=sum+1.0/i; }printf("sum: %f\n", sum);//float必须用%f输出0.000000(默认6位)return 0;
}/*
1+1/2+1/3+...+1/100的程序
输出结果:sum: 5.187378
详细步骤举例:
1-> i=1 1<100 成立sum=0+1/1.0 i++ i=22-> i=2 2<100 成立sum=1+1/2.0 i++ i=3(以此类推)
*/
3、
代码解析:
# include <stdio.h>
int main() {int i, j;float ave1 = 0 ;//偶奇的平均数float ave2 = 0;int cnt1 = 0;//偶奇的个数int cnt2 = 0;//计算偶数:for (i = 2; i <= 100; i+=2) {ave1 = ave1 + i;//偶数的和cnt1 = cnt1 + 1;//偶数的个数}//计算奇数:for (j = 1; j <= 100; j += 2) {ave2 = ave2 + j;//奇数的和cnt2 = cnt2 + 1;//奇数的个数}printf("1到100之间的偶数平均数:%f\n", ave1 / cnt1);printf("1到100之间的偶数的个数:%d\n", cnt1);printf("\n");printf("1到100之间的奇数平均数:%f\n", ave2 / cnt2);printf("1到100之间的奇数的个数:%d\n", cnt2);return 0;
}/*
运行结果:
1到100之间的偶数平均数:51.000000
1到100之间的偶数的个数:501到100之间的奇数平均数:50.000000
1到100之间的奇数的个数:50*/
4、
代码解析:
#include <stdio.h>
bool Isprime(int val) {int i;for (i = 2; i < val; i++) {if (val % i == 0) {break;}}if (i == val) {return true;}else {return false;}
}
int main() {int m;int i;scanf("%d", &m);if (Isprime(m)){//表达式不为0就会判断为真 true是真 false是假printf("Yes!\n");}else {printf("No!\n");}return 0;
}
5、
代码解析:
#include <stdio.h>
int main()
{int i;for (i = 2; i <= 100; i++) //1不是素数{int j = 0;for (j = 2; j <= i; j++) //从j->i取余,如果余数为0则不是素数,跳出循环{if (i % j == 0){break;}}if (i == j){printf("%d\n", i);}}return 0;
}/*
输出结果:
2
3
5
7
11
13
17
19
23
29
31
37
41
43
47
53
59
61
67
71
73
79
83
89
97*/
C语言期末考试测试题及答案相关推荐
- 湘大c语言期末考试试题及答案,湘大机房c语言试题.doc
湘大机房c语言试题 试卷编号:8352 所属语言:C语言 试卷方案:2013上C语言II练习 试卷总分:100分 共有题型:4种 ━━━━━━━━━━━━━━━━━ 一.单项选择 共10题 (共计30 ...
- suma在c语言中表示什么变量,大学C语言程序设计考试试题及答案3套.doc
<大学C语言程序设计考试试题及答案3套.doc>由会员分享,可在线阅读,更多相关<大学C语言程序设计考试试题及答案3套.doc(18页珍藏版)>请在装配图网上搜索. 1.C语言 ...
- 大学c语言程序设计期末考试试卷,大学大一c语言程序设计期末考试试卷及答案.doc...
大学大一c语言程序设计期末考试试卷及答案.doc 计算机科学学院C语言程序设计试卷A第1页(共8页)四川师范大学计算机科学学院20122013学年度第二学期期末考试C语言程序设计试卷试卷A答卷说明1. ...
- 川大锦城c语言期末考试答案,四川大学《计算机组成原理》2018期末考试B卷答案及评分标准.doc...
四川大学期末考试试题(闭卷)答案及评分标准 (2017--2018学年第 2 学期) B卷 课程号:304036030 课程名称:计算机组成原理 填空题(本大题共15空,每空2分,共30分) 在评价计 ...
- 大二c语言期末考试题库及详解答案,大学C语言期末考试练习题(带详解答案)...
<大学C语言期末考试练习题(带详解答案)>由会员分享,可在线阅读,更多相关<大学C语言期末考试练习题(带详解答案)(55页珍藏版)>请在金锄头文库上搜索. 1.一. 单项选择题 ...
- 广州大学计算机技术复试c语言试题,广州大学C语言程序设计期末考试试卷含答案...
<广州大学C语言程序设计期末考试试卷含答案>由会员分享,可在线阅读,更多相关<广州大学C语言程序设计期末考试试卷含答案(9页珍藏版)>请在人人文库网上搜索. 1.院.系领导审批 ...
- 湖南工业大学c语言在线作业答案,湖南工业大学C语言期末考试复习题(机房题库)...
C语言期末考试复习题(机房题库) 2.下列各选项中,合法的c语言关键字是( ). A. integex B. sin C. string D. void参考答案: D 3.C语言的程序一行写不下时,应 ...
- java语言程序设计考题_《JAVA语言程序设计》期末考试试题及答案6(应考必备题库)...
<JAVA语言程序设计>期末考试试题及答案6(应考必备题库) 一.填空题 1.定义类的保留字是( class ),定义接口的保留字是( interface ). 2.Socket通常也称为 ...
- 《JAVA语言程序设计》期末考试试题及答案
文章目录 <JAVA语言程序设计>期末考试试题及答案1(应考必备题库) 一.单选择题 二.填空题 三.写出下面程序的运行结果 <JAVA语言程序设计>期末考试试题及答案2(应考 ...
最新文章
- Windows 7 开发新特性
- gis许可服务器状态,把ArcGIS的许可指到本机(服务设为@l者机器名)通过修改注册表实现...
- AI 落地,数据安全绕不开的 4 大问题
- django 使用Ajax方式POST JSON数据包
- ubuntu16.04安装CecureCRT 并破解
- java长连接转短连接_java原生程序redis连接(连接池/长连接和短连接)选择问题...
- 数学知识点回顾(三)
- 第三章在局域网中使用冗余链路
- cropper.js 裁剪图片并上传(文档翻译+demo)
- Windows7旗舰版SP1_32位2018.10(纯净版)
- 远程桌面连接命令“Mstsc”,Windows系统连接远程方法
- Nginx反向代理https配置解决方案
- eact native生成APP报错:You have not accepted the license agreements of the following SDK components:...
- 【11款良心软件推荐】Windows:提高学习/办公效率,免费+免安装便携式,支持任意窗口置顶,熄屏,上下文菜单,禁止系统更新,定制文件夹样式等
- Python中的循环遍历列表
- 点击率是什么以及怎么提升点击率
- php中pattern以a或A为开头,shell基础六和七:执行顺序(||及,{}及())及正则表达式...
- Pyqt5 在表格中单元格设置下拉框,并根据选项改变背景颜色
- 模糊C均值聚类算法的实现
- 杰理之 U盘、T卡顺序切换【篇】