院考 c语言知识点完整版

本文整理了C语言考试的各章重点习题与知识点,包括:程序执行、数据类型、注释规则、变量声明、基本运算符、流程控制、输入输出、数组、函数、指针等内容,旨在帮助考生理解和掌握C语言的核心概念,同时提醒考生注意避免常见的编程陷阱。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

马上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",

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值