马上c语言考试了,写一篇博客根据考试范围对应了一下之前微信里老师发过的习题(考试会有很多原题),把题目整理一下,也帮助一下身边的小伙伴。欢迎评论交流。(补充后两章完整版)
一、考试范围
二、各章微信习题整理
第一章习题与知识点
1.一个c语言的执行总是从main函数开始,也从main函数结束。✔
2.c语言本身没有输入输出语句。✔
(c语言的输出输出是调用库函数中提供的函数,例如printf和scanf两个函数.)
3.在c程序中,注释说明只能位于一条语句的后面。✖
(c语言中注释可以随处)
第二章习题与知识点
1.合法标识符*:
①由字母、数字和下划线组成的字符序列,其中第一个字符不能是数字。
②自定义标识符不能用关键字(如:int,char,if…)和预定义标识符(如:scanf,printf,define…),且区分大小写。
2.c语言中,不能表示整数常量的数制是二进制。
(在C语言中,只支持8进制,10进制,16进制。除了这三种外,其它进制均是不支持的)
3.表达式1/2的值是0;表达式1.0/2的值是0.5
前者是整数除法,后者是浮点数除法)
4.c语言的基本数据类型有字符型,整型,实型(浮点型)。并没有数组类型。
5.正确定义和赋值练习:
(1)写出代码为n1赋值10,为n2也赋值10
int n1=10,n2=10;(看清逗号和分号的位置,不能连等)
(2)给定代码段: int a,b=0;则a的初始值是0?✖
只是将b的初始值设置为0,a的值不能确定。
(3)有语句scanf(“a=%d,b=%d”,&a,&b),从键盘输入数据的正确形式应该是什么?
答:a=1,b=2 scanf语句引号内除了要输入的变量,其他要原样输出。
6.现有以下语句
#include<stdio.h>
int main()
{
int a,b;
scanf("%d %d",a,b);
return 0;
}
1
2
3
4
5
6
7
用户从键盘输入3 5后,程序的结果是_____。
答:程序将崩溃。
(因为scanf语句中忘记了写入取地址符&,会导致程序崩溃)
第三章习题与知识点
1.写出程序运行结果
#include<stdio.h>
int main()
{
int a,b,s;
scanf("%2d%2d",&a,&b);
s=a/b;
printf(“s=%d”,s);
return 0;
}
1
2
3
4
5
6
7
8
9
10
运行:
运行结果为s=1。这是因为%2d限制了a和b只读取了两位数,即输入54321后a的值为54,而b的值为32,s=54/32,由于是整数除法,结果为1。
2写出程序的运行结果
#include<stdio.h>
int main()
{
int a=1234;
printf("%2d\n",a);
return 0;
}
1
2
3
4
5
6
7
8
运行:
运行结果为输出1234。为什么1234没有被截断为12呢?
这是因为如果数据的实际位宽<域宽修饰符的位宽输出就会被添上空格填满域宽区域,这些数值是右对齐的。
如果数据的实际位宽>=域宽修饰符的位宽输出就忽略宽度修饰符,如实地输出a。
3.写出程序的运行结果
#include<stdio.h>
int main()
{
char c1=‘a’,c2=‘b’,c3=‘c’;
printf(“a%cb%cc%cabc\n”,c1,c2,c3);
return 0;
}
1
2
3
4
5
6
7
8
运行:
运行结果为:aabbccabc。
三个%c依次被写入c1→%c,c2→%c,c3→%c。printf语句内除了三个%c外的其他字符原样输出为a_b_c_abc。三个_上依次为c1,c2,c3。
4.写出程序的运行结果
#include<stdio.h>
int main()
{
int a=2,c=5;
printf(“a=%%d,b=%%d\n”,a,c);
return 0;
}
1
2
3
4
5
6
7
8
运行:
运行结果为:a=%d,b=%d
在此说明一下c语言中%%d的含义:%%d 在c语言中会被拆成两部分看待,“%%”就是输出一个“%”,而是“d”就是一个普通字符,所以当“%%d”在一起时,其含义就是输出“%d”这两个字符。
第四章习题与知识点
1.以下语句是否可以通过编译:if(i<=n<=10);
答:不能。
编程语句不能连写。if(1<=n<=10)执行过程是这样的:先判断 1<=n ,判断结果为0或1,然后再判断(1<=n)的整体值(0或1)是否小于等于10,结果为1。这并不能表示n介于1到10之间的判断。如果要执行n介于1到10之间的判断,应表示为:if( n>=1 && n<=10 ) ;。
2.判断:if语句中,if后面的表达式可以是关系表达式与逻辑表达式,而不能是算术表达式。✖
if语句中,if语句后的表达式不限于逻辑或关系表达式,可以是任意的数值类型。即可以使任意的算术表达式。
3.写出程序的运行结果
#include<stdio.h>
int main()
{
int i,j,k;
i=5,j=10;k=1;
printf("%d",