C语言基础知识练习

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/g984160547/article/details/70257611

传送门:C语言基础知识梳理总结

练习一 

一、填空题:

1.在C语言程序中,用关键字 int 定义基本整型变量,用关键字 float 定义单精度实型变量,用关键字 char 定义字符型变量。

2.程序结构包括三种:  顺序结构   循环结构   选择结构 

二、选择题:

1.C语言程序是由(C)构成的。

A)一些可执行语言  B)main函数   C)函数   D)包含文件中的第一个函数

2.(A)是构成C语言程序的基本单位。

A、函数     B、过程     C、子程序   D、子例程

3.不是C语言提供的合法关键字是(B)。

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<stdio.h>
void main()
{int x,a,b,c;
 scanf("%d",&x);
 a=x/100;
 b=x/10%10;
 c=x%10;
 x=c*100+b*10+a;
 printf("%d",x);

} 


练习二

一、填空题

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<stdio.h>

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]<min) min=a[i]; } printf("最大是%f,最小是%f ",max,min);

}

}

练习三

一、填空题

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<b? a:b"的值是(A)。

A)3    B) 4      C) 0    D) 1

7.若int x=2,y=3,z=4 则表达式x<z?y:z的结果是(B).

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<b)&&!c||1)

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<x)?w:x;

m=(m<y)?m:y;

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<stdio.h>
int main()
{
    int
num;
    printf("Please input ainteger:");
    scanf("%d",&
num);
    if(
num>=0)
     printf("%d",num);
    else printf("\n%d\n",-num);
}


练习四

一、填空题

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 <stdio.h>

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;

}


猜你喜欢

转载自blog.csdn.net/g984160547/article/details/70257611