传送门:C语言基础知识梳理总结
练习一
一、填空题:
1.在C语言程序中,用关键字 int 定义基本整型变量,用关键字 float 定义单精度实型变量,用关键字 char 定义字符型变量。
2.程序结构包括三种: 顺序结构 、 循环结构 、 选择结构
二、选择题:
1.C语言程序是由(C)构成的。
A)一些可执行语言 B)main函数 C)函数 D)包含文件中的第一个函数
2.(A)是构成C语言程序的基本单位。
A、函数 B、过程 C、子程序 D、子例程
3.不是C语言提供的合法关键字是(D)。
A.switch B.cher C.case D.default
4.下列正确的标识符是(C)。
A.-a1 B.a[i] C.a2_i D.int t
5.下列C语言用户标识符中合法的是(B)。
A、*y B、sum C、int D、%5f
6.下面四个选项中,合法的标识符是:(D)
A.auto B. define C. 6a D. c
7.下列C语言用户标识符中合法的是(B)。
A)3ax B)x C)case D)-e2 E)union
8.以下选项中合法的用户标识符是 (B)
A)long B) _2Test C) 3Dmax D)A.dat
9.下列四组选项中,正确的C语言标识符是(C)。
A) %x B)a+b C)a123 D)123
10.请选出可用作C语言用户标识符的一组标识符(B)
A)void define WORD B) a3_b3 _123 sum
C)For -abcCase D) 2a DO sizeof
11.下列四组字符串中都可以用作C语言程序中的标识符的是(A)。
A、print _3d db8 aBc B、I\am one_half start$it 3pai
C、str_1 Cpp pow while D、Pxq My->book line# His.age
三、是非题:
1.C 语言具有简洁明了的特点。(正确)
2.预处理命令的前面必须加一个“#”号。 (正确)
3.标准格式输入函数scanf()可以从键盘上接收不同数据类型的数据项。(正确)
4.在if语句的三种形式中,如果要想在满足条件时执行一组(多个)语句,则必须把这一组语句用{}括起来组成一个复合语句。(正确)
5.continue 不是结束本次循环,而是终止整个循环的执行。(错误)
6.在对数组全部元素赋初值时,不可以省略行数,但能省略列数 (错误)
7.函数的实参传递到形参有两种方式值传递和地址传递 (正确)
8.直接访问就是直接利用变量的地址进行存取直接访问 (正确)
9.共用体变量可以作结构体的成员,结构体变量也可以作共用体的成员。 (正确)
10.文件指针和位置指针都是随着文件的读写操作在不断改变。(错误)
四、编程题:
1.编写程序,从键盘顺序输入3个整数,然后按逆序将它们输出。例如,假设输入的3个整数为8、2、7,则程序输出7、2、8
#include
#include
int main()
{
int a[3],i;
for(i=0;i<3;i++)
scanf("%d",&a[i]);
for(i=2;i>=0;i--)
printf("%d ",a[i]);
return 0;
}
/*
运行结果:
1 2 3
3 2 1
*/
练习二
一、填空题
1.一个C源程序至少包含一个 主函数 ,即 main 函数。
2.已知“int j,i=1”,执行语句“j=i++;”后,变量i的值是 1 。
3.已知“int j,i=1”,执行语句“j=++i;”后,变量i的值是 2 。
二、选择题
1.C语言程序从main()函数开始执行,所以这个函数要写在(D)。
A)程序文件的开始 B) 程序文件的最后
C)它所调用的函数的前面 D) 程序文件的任何位置
2.以下说法中正确的是(C)。
A、C语言程序总是从第一个定义的函数开始执行
B、在C语言程序中,要调用的函数必须在main( )函数中定义
C、C语言程序总是从main( )函数开始执行
D、C语言程序中的main( )函数必须放在程序的开始部分
3.下列方法中错误的是(D)。
A.主函数可以分为两个部分:主函数说明部分和主函数体。
B.主函数可以调用任何非主函数的其它函数。
C.任何非主函数可以调用其它任何非主函数。
D.程序可以从任何非主函数开始执行。
4.下列C语言标识符中合法的变量名是(B)。
A)2e3 B)you C)*y D)float
5.C语言中的简单数据类型包括(D)。
A、整型、实型、逻辑型 B、整型、实型、逻辑型、字符型
C、整型、字符型、逻辑型 D、整型、实型、字符型
6.下列可以正确表示字符型常量的是(A)。
A、’\t’ B、”a” C、”\n” D、297
7.下列表达式中,(D)是正确的C语言字符常量。
A)”x” B)e3 C)”COMPUTER” D)’#’
8.在下列表达式中,属于字符型常量的是(B)。
A)A B) 'a' C) "A" D) b
9.以下选项中合法的字符常量是(B)
A) “B” B) ‘\n’ C) ‘68’ D) E
10.下面字符常量表示错误的是(D)
A)’a’ B)’?’ C)’\n’ D)”\n”
11.已定义c为字符型变量,则下列语句中正确的是(C)
A)c='97' B)c="97" C)c=‘a’ D)c="a"
12.已知ch是字符型变量,不正确的赋值语句是(A)
A)ch='a+b'; B) ch=' \0 ';
C)ch=' 7' ; D) ch=’;’;
13.C语言中字符型(char)数据在内存中的存储的是(D)
A) 原码 B) 补码 C) 反码 D)ASCII码
14.在C语言中,字符型数据所占的内存空间是(C)
A)2个字节 B) 4字节 C) 1字节 D)由用户自定义
15.C语言中运算对象必须是整型的运算符是(A)
A)%= B) / C) = D) 〈=
三、是非题
1.C 语言标准格式输入函数 scanf() 的参数表中要使用变量的地址值(正确)
2.浮点型常量的指数表示中 ,e 是可以省略的。(错误)
3.任何表达式语句都是表达式加分号组成的。(正确)
4.在switch语句中,每一个的case常量表达式的值可以相同。(错误)
5.do-while循环的while后的分号可以省略。(错误)
6.用字符串方式赋值比用字符逐个赋值要多占一个字节, 用于存放字符串结束标志'\0'。(正确)
7.C语言函数返回类型的默认定义类型是void (错误)
8.可以用一个指针变量指向一个函数,然后通过该指针变量调用此函数(正确)
9.枚举类型中的元素都具有一个整型值。(正确)
10. C 语言是一种具有某些低级语言特征的高级语言。(正确)
四、编程题
1.编写程序,从键盘输入10个学生的成绩,统计最高分和最低分并输出
#include
void main()
{
doublea[10],max,min,sum=0; int i; for(i=0;i<10;i++)
{
printf("请输入第%d个成绩",i+1);sanf("%f",&a[i]);
}
max=a[0];min=a[0]; for(i=0;i<10;i++)
{
sum+=a[i]; if(a[i]>max) max=a[i];if(a[i]
}
}
练习三
一、填空题
1.执行下列语句“intb=20;b=b/5;b=b-2”后,b的值是__2__。
2.设double y[3][4];,则数组y中元素的个数是__12__
二、选择题
1.下列说法错误的是:(B)
A.C程序运行步骤是编辑、编译、连接、执行。
B.C语言的变量名必须用小写,常量用大写。
C.C语言的三种基本结构是顺序、选择、循环。
D.C程序一定由函数构成的。
2.下列关于C语言的说法错误的是(B) 。
A)C程序的工作过程是编辑、编译、连接、运行
B)C语言不区分大小写。
C)C程序的三种基本结构是顺序、选择、循环
D)C程序从main函数开始执行
3.在C语言程序中,表达式8/5的结果是(B)
A)1.6 B)1 C)3 D)0
4.设x为int型变量,则执行以下语句后,x的值为(B)x=10;x+=x;
A)10 B) 20 C) 40 D) 30
5.在C语言程序中,表达式5%2的结果是(C)。
A)2.5 B)2 C)1 D)3
6.如果int a=3,b=4;则条件表达式"a
A)3 B) 4 C) 0 D) 1
7.若int x=2,y=3,z=4 则表达式x A)4 B)3 C)2 D)0 E)1 8.C语言中,关系表达式和逻辑表达式的值是(B)。 A)0 B) 0或1 C) 1 D) ‘T’或’F’ 9.设a,b和c都是int型变量,且a=3,b=4,c=5,则下面表达式中,值为0的表达式是(D) A、’a’&&’b’ B、a<=b C、a||b+c&&b-c D、!((a
10.下面(D)表达式的值为4. A) 11/3 B) 11.0/3 C) (float)11/3 D) (int)(11.0/3+0.5) 11.已知字母A的ASCII码为十进制数65,且c2为字符型,则执行语句c2='A'+'6'-'3';后,c2中的值为 (B) A) 68 B) ‘D’ C) 错误 D) ‘d’ 12.下列关于C语言的叙述错误的是(A) A) 大写字母和小写字母的意义相同 B) 不同类型的变量可以在一个表达式中 C) 在赋值表达式中等号(=)左边的变量和右边的值可以是不同类型 D) 同一个运算符号在不同的场合可以有不同的含义 13.有:int w=11,x=12,y=3,m; 执行下面语句后m的结果是(C) m=(w m=(m A.1 B. 2 C. 3 D. 以上结果都不对 三、是非题 1.case语句后如没有break,顺序向下执行。(正确) 2.do-while循环至少要执行一次循环语句。(正确) 3.数组名能与其它变量名相同。数组名后是用方括号括起来的常量表达式,不能用圆括号。(正确) 4.函数形参的存储单元是动态分配的。(正确) 5.int (*p)[4]它表示p是一个指针数组,它包含4个指针变量元素。(错误) 6.结构体变量可以作数组元素。(正确) 7.随机操作只适用于文本文件。(错误) 8.表达式语句和表达式没有什么区别。(错误) 9.条件运算符?和:是一对运算符,不能分开单独使用。(正确) 10.函数strcmp从头至尾顺序地将其对应字符比较,遇到两个字符不等时,两个字符相减得到一个int型值,两个字符串完全相同时,则返回0。(正确) 四、编程题 1.编写程序,从键盘输入一个整数,若是整数则原样输出,若是附属则输出该数的绝对值 #include 练习四 一、填空题 1.设int型变量x有初始值3,则表达式x++*5/10的值是 __1__。 2.执行下列语句”int a=8;a+=a-=a*a;”后,a的值是__-112__。 二、选择题 1.C语言程序从(C)开始执行。 A)程序中第一条可执行语句 B) 程序中第一个函数 C)程序中的main函数 D) 包含文件中的第一个 2.系统默认的C语言源程序扩展名为.C,需经过(C)之后,生成.exe文件,才能运行? A)编辑?编译 B )编辑?连接 C) 编译?连接 D) 编辑?改错 3.有:int w=7, x=12, y=3,m; 执行下面语句后m的值是(A) m=(w>x)?w:x; m=(m>y)?m:y; A.12 B. 0 C. 3 D. 1 4.设整型变量 a=2,则执行下列语句后,浮点型变量b的值不为0.5的是(B) A.b=1.0/a B.b=(float)(1/a) C.b=1/(float)a D.b=1/(a*1.0) 5.以下运算符中优先级最高的运算符是(B) A)&& B)++ C)+= D)!= 6.若“int n; float f=13.8;”,则执行“n=(int)f%3”后,n的值是(A) A.1 B.4 C.4.333333 D.4.6 7.设x为int型变量,则执行以下语句后,x的值为(C) x=10;x*=x; A)10 B) 20 C) 100 D) 0 8.若有语句int a=1,b; doubley=2.3; b=(int)y; 则b的值为 (B)? A)3 B) 2 C) 1 D) 2.3 9.已知int x;char y;则下面错误的scanf函数调用语句为(B) A)scanf(“%d,%d”,&x,&y); B) scanf(“%d,%c”,x,y) C)scanf(“%d%d”,&x,&y) D)scanf(“%d,%c”,&x,&y) 10.在C语言的库函数中,可以输出char型变量x值的语句是(C)。 A)getchar(x); B)fputc(x) C)putchar(x) D)puts(x) 11.以下说法正确的是(C) A) 'x'+5是一个错误的表达式 B) C语言不允许类型的混合运算 C) 强制类型转换时,类型说明符必须加括号 D)(int)x+y 和(int)(x+y)是完全等价的表达式 12. 设 int x=0, y=1; 表达式(x||y)的值是(B) A)0 B) 1 C) 2 D) -1 三、是非题 1.函数的实参可以是常量,变量或表达式。(正确) 2.如果指针变量p已指向数组中的一个元素,则p+1指向同一数组中的下一个元素。(正确) 3.文件指针用于指向文件,文件只有被打开后才有对应的文件指针。(正确) 4.C 语言标准输入操作中 ,gets() 函数一次只可读取一个字符。(错误) 5.在C语言中,逗号既可以作为运算符,也可以作为分隔符。(正确) 6.C语言的书写格式不会影响程序的可读性。(错误) 7.条件表达式不能取代一般if的语句。(错误) 8.break 则是结束整个循环过程,不再判断执行循环的条件是否成立。(正确) 9.C语言允许用字符串的方式对数组作初始化赋值。(正确) 10.如果函数定义出现在函数调用之前,可以不必加函数原型声明。(正确) 四、编程题 1.将一个数组中的值按逆序输出。例如:原来顺序为8,6,5,3,2,1要求改为 1,2,3,5,6,8 #include int main() { int a[6] = {8, 6, 5, 3, 2,1}; inti = 0, tmp; for(i = 0; i < 6/2; ++i) { tmp = a[5-i]; a[5-i] = a[i]; a[i] = tmp; } for(i = 0; i < 6; ++i) printf("%5d\n", a[i]); return 0; }
int main()
{
int
printf("Please input ainteger:");
scanf("%d",&num);
if(num>=0)
printf("%d",num);
else printf("\n%d\n",-num);
}