视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
C语言程序的设计试题库完整
2025-10-05 18:02:26 责编:小OO
文档
一、选择题(每题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.为表示逻辑表达式79  A.( 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 )。

  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.无限次    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语言规定,简单变量做实参时,它和对应形参之间的数据传递方式为( B )。

  A. 由系统选择  B. 单向值传递   C. 由用户指定传递方式  D. 地址传递

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

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

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

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

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

20.若有以下说明语句:

        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)的结果为( C )类型。

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

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

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

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

A.10 C.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", a,b );的输出结果分别是  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 ", a );输出结果是  30  。

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

13、以下语句char str[10]={"China"}; printf("%d",strlen(str))的输出结果是  5  。

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

15、已知:int b=5,*p=&b;并且b的地址为4000,则“printf("%d,%d",p,*p);”的输出结果是  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 ", a );输出结果是  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);

解答: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", sum);

}

答案:

#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,y);

}

解答: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分)下载本文

显示全文
专题