您的当前位置:首页C语言程序设计题库

C语言程序设计题库

2022-01-26 来源:小侦探旅游网
.

一、选择题(每题1分,共20分)

1.C语言程序从main()函数开始执行,所以这个函数要写在( D )。

A.程序文件的开始 B.程序文件的最后

C.它所调用的函数的前面 D.程序文件的任何位置

2.下列方法中错误的是( D )。

A.主函数可以分为两个部分:主函数说明部分和主函数体。

B.主函数可以调用任何非主函数的其它函数。

C.任何非主函数可以调用其它任何非主函数。

D.程序可以从任何非主函数开始执行。

3.下列正确的标识符是( C )。

A.-a1 B.a[i] C.a2_i D.int t

4.C语言中的简单数据类型包括( D )。

..

.

A.整型、实型、逻辑型 B.整型、实型、逻辑型、字符型

C.整型、字符型、逻辑型 D.整型、实型、字符型

5.下列可以正确表示字符型常量的是( A )。

A.’\’ B.”a” C.”\\n” D.297

6.在C语言中,字符型数据所占的内存空间是( C )。

A.2个字节 B.4字节 C.1字节 D.由用户自定义

7.若int类型数据占2个字节,则unsigned int类型数据的取值范围是( B )。

A.0~255 B.0~65535 C.-32768~32767 D.-256~255

8.若有以下类型说明语句:char a;int b; float c; double d; 则表达式a*b+d-c的结果类型为( D )。

A.float B.char C.int D.double

9.下列正确的预编译命令是( D )。

..

A.define PI 3.14159

B.#define P(a,b)=strcpy(a,b)

C.#define stdio.h

D.#define PI 3.14159

10.为表示逻辑表达式79A.( X>79 )&&( X<90 ) B.( X>79 )!=( X<90 )

C.7979 )||( X<90 )

11.设有语句“int a=2,b=3,c=-2,d=2;”,则逻辑表达式“a>0&&b&&c<0&&d>0”的值是(A.1 B.0 C.-1 D.出错

12.字符串 “ABCD”在内存占用的字节数是( D )。

A.4 B.6 C.1 D.5

13.若有“int a=1,x=1;”,则循环语句“while(a<10) x++; a++;”的循环执行( A )。

..

.

A )。

.

A.无限次 B.不确定次 C.10次 D.9次

14.有以下程序段

int k=0

while(k)k++;

则while循环体执行的次数是( C )。

A.无限次 B.有语法错,不能执行

C.一次也不执行 D.执行1次

15.已知:int a[10]; 则对a数组元素的正确引用是( D )。

A.a[10] B.a[3.5] C.a(5) D.a[0]

16.变量的指针,其含义是指该变量的( B )。

A. 值 B. 地址 C. 名 D.一个标志

17.下列说法中错误的是( C )。

..

A.构成数组的所有元素的数据类型必须是相同的

B.用指针法引用数组元素允许数组元素的下标越界

C.一维数组元素的下标依次是1、2、3……

D.定义数组时的长度可以是整型常量表达式

18.C语言规定,简单变量做实参时,它和对应形参之间的数据传递方式为(A. 由系统选择 B. 单向值传递 C. 由用户指定传递方式 D. 地址传递

19.在C语言程序中,有关函数的定义正确的是( B )。

A.函数的定义可以嵌套,但函数的调用不可以嵌套

B.函数的定义不可以嵌套,但函数的调用可以嵌套

C.函数的定义和函数的调用均不可以嵌套

D.函数的定义和函数的均可以嵌套

20.若有以下说明语句:

..

.

)。

B .

struct date

{ int year;

int month;

int day;

}birthday;

则下面的叙述不正确的是( C )。

A.struct是声明结构体类型时用的关键字

B.struct date 是用户定义的结构体类型名

C.birthday是用户定义的结构体类型名

D.year,day 都是结构体成员名

一、单项选择题(每题1分,共20分)

1.下列说法错误的是( B )。

..

A. C程序运行步骤是编辑、编译、连接、执行。

B. C语言的变量名必须用小写,常量用大写。

C. C语言的三种基本结构是顺序、选择、循环。

D. C程序一定由函数构成的。

2.下列C语言用户标识符中合法的是( B )。

A.3ax B.x C.case D.-e2

3.在下列表达式中,属于字符型常量的是( B )。

A.A B.'a' C.\"A\" D.b

4.若有以下类型说明语句:char w;int x;float y;double z;则表达式(int)(x+y-z*w)的结果为(类型。

A.float B.char C.int D.double

5.在C语言程序中,表达式8/5的结果是( B )。

..

.

C ) .

A.1.6 B.1 C.3 D.0

6.设a为整型变量,则不能正确表达数学关系10<a<15的C语言表达式是( A )。

A.10C.a>10&&a<15 D)!(a<=10)&&!(a>=15)

7.若int i=10; 执行下列程序后,变量i的正确结果是( A )。

switch ( i )

{ case 9: i+=1;

case 10: i+=1;

case 11: i+=1;

default : i+=1; }

A.13 B.12 C.11 D.10

8.下列循环语句中有语法错误的是( D )。

..

.

A.while(x=y) 5; B.while(0);

C.for(i=0;i<3;); D.for(;i<3);

9.若有以下数组说明,则数值最大的和最小的元素下标分别是( B )。

int a[12]={1,2,3,4,5,6,7,8,9,10,11,12};

A.1,12 B.0,11 C.1,11 D.0,12

10.假定int类型变量占用两个字节,其有定义:int x[10]={0,2,4};,则数组x在内存中所占字节数是( D )。

A.3 B.6 C.10 D.20

11.以下对C语言函数的有关描述中,正确的是( A )。

A.在C语言程序中,调用函数时,如函数参数是简单变量,则只能把实参的值传递给形参,形参的值不能传送给实参

B.C语言函数既可以嵌套定义又可递归调用

C.C语言函数必须有返回值,否则不能使用函数

..

.

D.在C语言程序中有调用关系的所有函数必须放在同一个源程序文件中

12.以下叙述中正确的是( A )。

A.构成C程序的基本单位是函数

B.可以在一个函数中定义另一个函数

C. main()函数必须放在其它函数之前

D.所有被调用的函数一定要在调用之前进行定义

13.已知:(设整型2字节,字符型1字节,浮点型4字节)

struct

{ int i;

char c;

float a;

}test;

..

.

则sizeof(test)的值是( D )。

A.4 B.5 C.6 D.7

14.若x是整型变量,pb是基类型为整型的指针变量,则正确的赋值表达式是( A )。

A.pb=&x B.pb=x C.*pb=&x D.*pb=*x

15.设有数组定义: char array [ ]=\"abcd\"; 则数组array所占的空间为( B )。A.4个字节 B.5个字节 C.6个字节 D.7个字节

16.下述对C语言中字符数组的描述错误的是( C )。

A.字符数组可以存放字符串

B.字符数组中的字符串可以整体输入和输出

C.可在赋值语句中通过赋值运算符“=”对字符数组整体赋值

D.可在对字符数组定义时通过赋值运算符“=”对字符数组整体初始化

17.下列命令或语句中,错误的是( C )。

..

.

A.#define PI 3.14159 B.#include

C.#define PI 3.14159; D.for(;;) if(1) break;

18.给出以下定义:

char x[ ]=\"abcdefg\";

char y[ ]={'a','b','c','d','e','f','g'};

则正确的叙述为( C )。

A.数组x和数组y等价 B.数组x和数组y的长度相同

C.数组x的长度大于数组y的长度 D.数组x的长度小于数组y的长度

19.判断两字符串s1,s2是否相等,应使用( D )。

A.if(s1==s2) B.if(s1=s2)

C.if(strcpy(s1,s2)) D.if(strcmp(s1,s2)==0)

20.以下printf语句的输出结果为( B )。

..

.

printf(“%d\\n”,strlen(“school”));

A.7 B.6 C.存在语法错误 D.不定值

一、单项选择题(每题1分,共20分)

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

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

2.C语言程序从( C )开始执行。

A) 程序中第一条可执行语句 B) 程序中第一个函数

C) 程序中的main函数 D) 包含文件中的第一个函数

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

A) switch B) cher C) case D) default

4.请选出可用作C语言用户标识符的一组标识符( B )。

A) void B) a3_b3 C) For D) 2a

..

.

define _123 -abc DO

WORD sum Case sizeof

5.下列四组字符串中都可以用作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

6.已定义c为字符型变量,则下列语句中正确的是 ( C )。

A)c='97' B)c=\"97\" C)c=‘a’ D)c=\"a\"

7.已知ch是字符型变量,不正确的赋值语句是( A )。

A) ch='a+b' ; B) ch=' \\0 ' ;

C) ch=' 7' ; D) ch=’;’;

8.在C语言中,认为( D )为逻辑\"真\" 。

A) true B)大于0的数 C)非0整数 D)非0的数

..

9.表示关系x<=y<=z的c语言表达式为( A )。

A) (x<=y)&&(y<=z) B) (x<=y)AND(y<=z)

C) (x<=y<=z) D) (x<=y)&(y<=z)

10.能正确表示逻辑关系:“a≥=10或a≤0”的C语言表达式是( D A) a>=10 or a<=0 B) a>=0|a<=10

C) a>=10 &&a<=0 D) a>=10‖a<=0

11.在C语言中,下列说法中正确的是( D )。

A) do-while语句构成的循环不能用其它语句构成的循环来代替。

B) do-while语句构成的循环只能用break语句退出。

C) do-while语句构成的循环在while后的表达式非零时结束循环。

D) do-while语句构成的循环,在while后的表达式为零时结束循环。

12.break语句不能出现在( D )语句中。

..

.

).

A) switch B) for C) while D) if…else

13.对于break语句和continue语句的说法错误的是( B )。

A) break语句不能用于循环语句和switch语句之外的任何其他语句中。

B) break和continue也可以用于if语句中

C) continue语句只结束本次循环,而不是终止整个循环的执行。

D) break语句是结束整个循环过程,不再判断执行循环的条件是否成立。

14.以下能对一维数组a进行初始化的语句是( C )。

A) int a[5]=(0,1,2,3,4,) B) int a(5)={}

C) int a[3]={0,1,2} D) int a{5}={10*1}

15.在C语言中,函数的数据类型是指( A )。

A) 函数返回值的数据类型 B) 函数形参的数据类型

C) 调用该函数时的实参的数据类型 D) 任意指定的数据类型

..

.

16.若有以下说明语句:

struct student

{ int num;

char name[ ];

float score;

}stu;

则下面的叙述不正确的是( D )。

A) struct是结构体类型的关键字

B) struct student 是用户定义的结构体类型

C) num, score都是结构体成员名

D) stu是用户定义的结构体类型名

17.语句int *p;说明了( C )。

..

.

A)p是指向一维数组的指针

B)p是指向函数的指针,该函数返回一int型数据

C)p是指向int型数据的指针

D)p是函数名,该函数返回一指向int型数据的指针

18.在C语言中,以( D )作为字符串结束标志。

A)’\\n’ B)’ ’ C) ’0’ D)’\\0’

19.下列数据中属于“字符串常量”的是( A )。

A) “a” B) {ABC} C) ‘abc\\0’ D) ‘a’

20.在C语言程序中,以#号带头的行是预编译处理( A )。

A) 命令 B) 语句 C) 函数 D) 字符串

二、判断题(每题1分,共10分)

1、【 √ 】C 语言具有简洁明了的特点。

..

.

2、【 √ 】预处理命令的前面必须加一个“#”号。

3、【 √ 】标准格式输入函数scanf()可以从键盘上接收不同数据类型的数据项。

4、【 √ 】在if语句的三种形式中,如果要想在满足条件时执行一组(多个)语句,则必须把这一组语句用{}括起来组成一个复合语句。

5、【 × 】continue 不是结束本次循环,而是终止整个循环的执行。

6、【 × 】在对二维数组全部元素赋初值时,不可以省略行数,但能省略列数。

7、【 √ 】函数的实参传递到形参有两种方式值传递和地址传递。

8、【 √ 】直接访问就是直接利用变量的地址进行存取直接访问。

9、【 √ 】共用体变量可以作结构体的成员,结构体变量也可以作共用体的成员。

10、【 × 】文件指针和位置指针都是随着文件的读写操作在不断改变。

1、【 √ 】case语句后如没有break,顺序向下执行。

2、【 √ 】do-while循环至少要执行一次循环语句。

..

.

3、【 √ 】定义时,数组名后是用方括号括起来的常量表达式,不能用圆括号。

4、【 √ 】函数形参的存储单元是动态分配的。

5、【 × 】int (*p)[4]它表示p是一个指针数组,它包含4个指针变量元素。

6、【 √ 】结构体变量可以作数组元素。

7、【 × 】随机操作只适用于文本文件。

8、【 × 】表达式语句和表达式没有什么区别。

9、【 √ 】条件运算符?和:是一对运算符,不能分开单独使用。

10、【 √ 】函数strcmp从头至尾顺序地将其对应字符比较,遇到两个字符不等时,两个字符相减得到一个int型值,两个字符串完全相同时,则返回0。

二、判断题(每题1分,共15分)

1、【 √ 】C 语言标准格式输入函数 scanf() 的参数表中要使用变量的地址值。

2、【 × 】浮点型常量的指数表示中 ,e 是可以省略的。

..

.

3、【 √ 】任何表达式语句都是表达式加分号组成的。

4、【 × 】在switch语句中,每一个的case常量表达式的值可以相同。

5、【 × 】do-while循环的while后的分号可以省略。

6、【 √ 】用字符串方式赋值比用字符逐个赋值要多占一个字节, 用于存放字符串结束标志'\\0'。

7、【 × 】C语言函数返回类型的默认定义类型是void。

8、【 √ 】可以用一个指针变量指向一个函数,然后通过该指针变量调用此函数。

9、【 √ 】枚举类型中的元素都具有一个整型值。

10、【 √ 】C 语言是一种具有某些低级语言特征的高级语言。

三、填空题(每空1分,共20分)

1、一个C源程序中至少应包含一个 main 函数。

2、a是整型变量,则执行表达式a=25/3%3后a的值为 2 。

..

.

3、int m=5,y=2;则表达式y+=y- =m*=y的值为 -16 。

4、执行下列语句: int a=1, b=2; a=a+b; b=a-b; a=a-b; printf(\"%d , %d \\n\的输出结果分别是 2,1 。

5、条件表达式的格式为“表达式1?表达式2:表达式3”,当表达式1为真时,整个条件表达式的值为 表达式2 的值。

6、C语言中的数组必须先 定义 ,然后使用。

7、如果需要从被调用函数返回一个函数值,被调用函数必须包含 return 语句。

8、已知:float f1=3.2,f2,*pf1=&f1;f2=f1,则f2的值为 3.2 。

9、字符串常量“123”在内存中的字节数是 4 。

10、已有定义 :int x=3 ;则表达式 :x=x+1.78 的值是 4 。

11、int a=24; printf(\"%o \输出结果是 30 。

12、当a=3,b=2,c=1时,表达式f=a>b>c的值是 0 。

..

.

13、以下语句char str[10]={\"China\的输出结果是 5 。

14、浮点型float变量占4个字节内存,double类型占 8 字节内存。

15、已知:int b=5,*p=&b;并且b的地址为4000,则“printf(\"%d,%d\”的输出结果是 4000,5 。

16、表达式18 && 53 的值是 1 。

17、设C语言中int类型数据占4个字节,则long类型数据占 4 个字节, short类型数据占 2 个字节,char类型数据占 1 个字节。

18、设a = 3,则执行++a后,a的值为 4 。

三、填空题(每空1分,共20分)

1、在C语言程序中,符号常量的定义要使用 #define 预处理命令。

2、逻辑运算符!是 自右至左 结合性。

3、引用C语言标准库函数,一般要用 #include 预处理命令将其头文件包含进来。

..

.

4、 strcat (字符数组名1,字符数组名2)把字符数组2中的字符串连接到字符数组1中字符串的后面,并删去字符串1后的串标志“\\0”。

5、C语言允许函数值类型缺省定义,此时该函数值隐含的类型是 int 。

6、数组在内存中占用一段连续的存储空间,它的首地址由 数组名 表示

7、若有定义:int a[2][3]={2,4,6,8,10,12};则*(&a[0][0]+2*2+1)的值是 12 。

8、在一个C源程序中,单行注释的分界符为 // 。

9、在C语言程序中,转义字符“\\n”的功能是 换行 。

10、当a=5,b=4,c=2时,表达式a>b!=c的值是 1 。

12、在C语言程序中,用关键字 char 定义字符型变量,用 double 定义双精度浮点型变量。

13若m是一个三位数,则百位数字为 m/100 ,十位数为 (m%100-m%10)/10 ,个位数为 m%10 。

14、执行下列语句:float a; int b; a = b =24.5/5; printf(“%f”, a);printf(“%d”,b); 输出结果是 4.000000 和 4 。

..

.

15、若x和n均是int型变量,且x和n的初值均为5,则计算表达式x+=n++后x的值为 10 ,n的值为 6 。

1、若a=6,b=4,c=2,则表达式!(a-b)+c-1&&b+c/2的值是 1 。

2、如果一函数只允许同一程序文件中的函数调用,则应在该函数定义前加上 static 修饰。

3、已有定义int x=0,y=0;,则计算表达式(x+=2,y=x+3/2,y+5) 后, 表达式的值是 8 。

4、对数组元素的引用方法有下标法和 指针法 两种。

5、要使指针变量与变量之间建立联系,可以用运算符 * 来定义一个指针变量

6、设int a[10],*p=a;则对a[3]的引用可以是p[3]或 *(p+3) 。

7、当a=3,b=2,c=1时,表达式f=a>b>c的值是 0 。

8、在C语言程序中,用关键字 float 定义单精度实型变量。

9、若m是一个三位数,则十位数字为 m/10-m/100*10 。

10、int a=24; printf(\"%x \输出结果是 18 。

..

.

11、设x,y,z均为int型变量,请写出描述“x或y中有一个小于z”的表达式

x12、运算符%、*=、||、==中,优先级最低的是 *= 。

13、在C语言中,\"x\"在内存中占 2 字节。

14、设y为int型变量,请写出描述“y是偶数”的表达式 y%2==0 。

15、在C语言的赋值表达式中,赋值号左边必须是 变量 。

16、设x=(5>1)+2,则x的值为 3 。

17、已知 i=5,写出语句 i*=i+1; 执行后整型变量 i 的值是 30 。

18、C语言中,二维数组在内存中的存放方式为按 行 优先存放。

19、数组char a[2]中的所有元素是a[1]和 a[0] 。

20、求字符串长度的库函数是 strlen (只写函数名即可)。

..

.

四、读程序题(每题10分,共30分)

1、下面程序段的运行结果是什么。

int i=1,a=0,s=1;

do{a=a+s*i; s=-s; i++;} while (i<=10);

printf(\"a=%d\

解答:a=-5

2、观察下列程序(一)和(二)有什么相同的地方,请写出来。(10分)

(一)#include

void main( )

{

printf(\"This is a C program!\\n\");

}

..

.

(二)#include

void main( )

{

int a,b,sum;

a=2; b=3;

sum=a+b;

printf(\"sum is %d\\n\

}

答案:

#include (3分)

void main( )(3分)

{(2分)

..

.

。。。。。。

}(2分)

3、下面程序的运行结果是什么。

#include

main()

{

int i,x,y;

i=x=y=0;

do

{

++i;

if(i%2!=0) {x=x+i;i++;}

..

.

y=y+i++;

} while (i<=7);

printf(\"x=%d,y=%d\\n\

}

解答:x=1,y=20

五、编程题(20分)

编写一个函数,输出如下的图形

***********

very good

***********

答案:

#include (3分)

..

.

void main( )(3分)

{ (2分)

printf(\"***********\\n\");(3分)

printf(\" very good \\n\");(4分)

printf(\"***********\\n\");(3分)

}(2分)

..

因篇幅问题不能全部显示,请点此查看更多更全内容