C语言复习题整理.docx

上传人:b****6 文档编号:12277935 上传时间:2023-06-05 格式:DOCX 页数:51 大小:31.59KB
下载 相关 举报
C语言复习题整理.docx_第1页
第1页 / 共51页
C语言复习题整理.docx_第2页
第2页 / 共51页
C语言复习题整理.docx_第3页
第3页 / 共51页
C语言复习题整理.docx_第4页
第4页 / 共51页
C语言复习题整理.docx_第5页
第5页 / 共51页
C语言复习题整理.docx_第6页
第6页 / 共51页
C语言复习题整理.docx_第7页
第7页 / 共51页
C语言复习题整理.docx_第8页
第8页 / 共51页
C语言复习题整理.docx_第9页
第9页 / 共51页
C语言复习题整理.docx_第10页
第10页 / 共51页
C语言复习题整理.docx_第11页
第11页 / 共51页
C语言复习题整理.docx_第12页
第12页 / 共51页
C语言复习题整理.docx_第13页
第13页 / 共51页
C语言复习题整理.docx_第14页
第14页 / 共51页
C语言复习题整理.docx_第15页
第15页 / 共51页
C语言复习题整理.docx_第16页
第16页 / 共51页
C语言复习题整理.docx_第17页
第17页 / 共51页
C语言复习题整理.docx_第18页
第18页 / 共51页
C语言复习题整理.docx_第19页
第19页 / 共51页
C语言复习题整理.docx_第20页
第20页 / 共51页
亲,该文档总共51页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

C语言复习题整理.docx

《C语言复习题整理.docx》由会员分享,可在线阅读,更多相关《C语言复习题整理.docx(51页珍藏版)》请在冰点文库上搜索。

C语言复习题整理.docx

C语言复习题整理

第2部分

C语言程序设计习题与解答

 题解1 绪  论

 习题

一、选择题

1.一个完整的可运行的C源程序中( B   )。

A.可以有一个或多个主函数              B.必须有且仅有一个主函数

C.可以没有主函数                D.必须有主函数和其他函数

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

A.子程序         B.过程             C.文本             D.函数

3.某C程序由一个主函数main( )和一个自定义函数max( )组成,则该程序(  D  )。

A.总是从max( )函数开始执行            B.写在前面的函数先开始执行

C.写在后面的函数先开始执行             D.总是从main( )函数开始执行

4.C语言规定,一个C源程序的主函数名必须为( C   )。

A.program       B.include          C.main             D.function

5.下列说法正确的是( C   )。

A.在书写C语言源程序时,每个语句以逗号结束

B.注释时,'/'和'*'号间可以有空格

C.无论注释内容的多少,在对程序编译时都被忽略

D.C程序每行只能写一个语句

6.C语言源程序文件的后缀是(  C  ),经过Compile后,生成文件的后缀是(  A  ),经过Build后,生成文件的后缀是( B  )。

A..obj          B..exe             C..c               D..doc

7.VisualC++IDE的编辑窗口的主要功能是( A ),输出窗口的主要功能是( D ),调试器(Debug)的主要功能是(C)。

A.建立并修改程序                      B.将C源程序编译成目标程序

C.跟踪分析程序的执行                  D.显示编译结果信息(如语法错误等)

8.在VisualC++开发环境下,C程序按工程(project)进行组织,每个工程可包括( D )C/CPP源文件,但只能有( A )main函数。

A.1个                               B.2个

C.3个                               D.1个以上(含1个)

9.调试程序时,如果某个语句后少了一个分号,调试时会提示错误,这种情况一般称之为( A )。

而某个“计算2的平方”的程序在调试时没有提示出错,而且成功执行并计算出了结果,只是结果等于5,这种情况一般称之为( D )。

A.语法错误                           B.正常情况

C.编译器出错                        D.逻辑设计错误

二、简答题

1.如何使用注释语句使用注释有何好处

2.C程序对书写格式有何要求规定书写格式有何好处符号名包括模块名、常量名、标号名、子程序名等。

这些名字应该能反映它所代表的实际东西,具有一定的意义,使其能够见名知义,有助于对程序功能的理解

3.简述C程序上机调试的一般步骤编辑,编译,连接,运行

4.简述C程序从.c源文件到.exe可执行文件的生成过程

 

题解2 基本数据类型与运算符

 习题

一、选择题

1.C语言中最基本的非空数据类型包括( D   )。

A.整型、浮点型、无值型                B.整型、字符型、无值型

C.整型、浮点型、字符型            D.整型、浮点型、双精度型、字符型

2.C语言中运算对象必须是整型的运算符是(  A  )。

A.%             B./                    C.=                D.〈=

3.若已定义x和y为int类型,则执行了语句x=1;y=x+3/2;后y的值是( B   )。

A.1             B.2                C.              D.

4.若有以下程序段:

 

inta=1,b=2,c;

c=b*a;

 

则执行后,c中的值是( A   )。

A.0             B.              C.1                D.2

5.能正确表示逻辑关系:

"a≥10或a≤0"的C语言表达式是( D   )。

A.a>=10ora<=0                     B.a>=0|a<=10

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

6.下列字符序列中,不可用作C语言标识符的是(  B  )。

A.xds426        B.             C._ok              D.zwd

7.在printf( )函数中,反斜杠字符'\'表示为( D   )。

A.\'            B.\0               C.\n               D.\\

8.设先有定义:

 

inta=10; 

则表达式a+=a*=a的值为( D   )。

A.10            B.100              C.1000             D.200

9.设先有定义:

 

inta=10; 

则表达式(++a)+(a--)的值为(  C  )。

A.20            B.21               C.22               D.19

10.有如下程序:

 

#include<>

main( )

{

    inty=3,x=3,z=1;

    printf("%d  %d\n",(++x,y++),z+2);

} 

 

运行该程序的输出结果是( D   )。

A.3  4          B.4  2             C.4  3             D.3  3

11.假定x、y、z、m均为int型变量,有如下程序段:

 

x=2;y=3;z=1;

m=(y

x;

m=(z

y;

 

则该程序运行后,m的值是( C   )。

A.4            B.3                C.2                D.1

12.以下选项中合法的字符常量是( B   )。

A."B"          B.'\010'               C.68               D.D

13.设x=3,y=4,z=5,则表达式((x+y)>z)&&(y==z)&&x||y+z&&y+z的值为(B)

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

((x+y)>z)&&(y==z)&&x||(y+z)&&(y+z)=1&&0&&3||9&&9=0||1=1

14.如果a=1,b=2,c=3,d=4,则条件表达式a

(c

d的值为(  A  )。

A.1            B.2                C.3                D.4

15.设intm=1,n=2; 则m++==n的结果是( A   )。

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

二、填空题

1.表达式10/3的结果是    3      ;10%3的结果是    1     。

2.执行语句:

inta=12;a+=a-=a*a;后的值是   -264     。

3.以下语句的输出结果是   -1   。

 

shortb=65535;

printf("%d",b);

 

4.以下程序的执行结果是     X=3,a=2,b=2     。

 

#include<>

main( )

{

    inta,b,x;

    x=(a=3,b=a--);

    printf("x=%d,a=%d,b=%d\n",x,a,b);

}

 

5.以下程序的执行结果是     0     。

 

#include<>

main( )

{

    floatf1,f2,f3,f4;

    intm1,m2;

    f1=f2=f3=f4=2;

    m1=m2=1;

    printf("%d\n",(m1=f1>=f2)&&(m2=f3

}

 

6.以下程序的执行结果是     n=1     。

 

#include<>

main( )

{

    floatf=;

    intn;

    n=(int)f%3;

    printf("n=%d\n",n);

}

三、简答题

2.简述转义字符的用途并举实例加以说明。

题解3 控制结构

 习题

一、选择题

1.结构化程序模块不具有的特征是(  B  )。

A.只有一个入口和一个出口

B.要尽量多使用goto语句

C.一般有顺序、选择和循环3种基本结构

D.程序中不能有死循环

2.C语言中,逻辑“真”等价于( C   )。

A.整数1             B.整数0        C.非0数            D.TRUE

3.以下4条语句中,有语法错误的是(  D  )。

A.if  (a>b)  m=a;                        B.if  (a

C.if  ((a=b)>=0)  m=a;                   D.if  ((a=b;)>=0)  m=a;

4.若i,j均为整型变量,则以下循环*(  C  )。

 

for(i=0,j=2;j=1;i++,j--)

   printf("%5d,%d\n",i,j);  

 

A.循环体只执行一次                   B.循环体执行二次

C.是无限循环                         D.循环条件不合法

5.以下程序段,执行结果为(  A  )。

 

a=1;

do

{a=a*a;}

while(!

a);

 

A.循环体只执行一次                   B.循环体执行二次

C.是无限循环                         D.循环条件不合法

6.C语言中while与do-while语句的主要区别是( A   )。

A.do-while的循环体至少无条件执行一次

B.do-while允许从外部跳到循环体内     

C.while的循环体至少无条件执行一次

D.while的循环控制条件比do-while的严格

7.语句while(!

a);中条件等价于(  D  )。

A.a!

=0              B.~a           C.a==1             D.a==0

8.以下程序的运行结果为( D   )。

 

#include<>

main( )

{

    inti=1,sum=0;

    while(i<=100)

        sum+=i;

        i++;

    printf("1+2+3+...+99+100=%d",sum);

}

 

A.5050              B.1            C.0            D.程序陷入死循环

9.以下程序的运行结果为(  A  )。

 

#include<>

main( )

{

    intsum,pad;

    sum=pad=5;

    pad=sum++;

    pad++;

    ++pad;

    printf("%d\n",pad);

}

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

10.以下程序的运行结果为( D   )。

 

#include<>

main( )

{

    inta=2,b=10;

    printf("a=%%d,b=%%d\n",a,b);

}

A.a=%2,b=%10                       B.a=2,b=10

C.a=%%d,b=%%d                      D.a=%d,b=%d

11.为了避免嵌套的if-else语句的二义性,C语言规定else总是(  C  )。

A.与缩排位置相同的if组成配对关系

B.与在其之前未配对的if组成配对关系

C.与在其之前未配对的最近的if组成配对关系

D.与同一行上的if组成配对关系

12.对于for(表达式1;;表达式3)可理解为( B   )。

A.for(表达式1;0;表达式3)

B.for(表达式1;1;表达式3)

C.for(表达式1;表达式1;表达式3)

D.for(表达式1;表达式3;表达式3)

二、程序填空

1.下面程序的功能是计算n!

 

#include<>

main( )

{   

    int  i,n;

    long  p;

    printf("Pleaseinputanumber:

\n");

    scanf("%d",&n);

    p=     1     ;

    for(i=2;i<=n;i++)

         p*=i或p=p*i     ;

    printf("n!

=%ld",p);

}

 

2.下面程序的功能是:

从键盘上输入若干学生的成绩,统计并输出最高和最低成绩,当输入负数时结束输入。

 

#include<>

main( )

{

    float  score,max,min;

    printf("Pleaseinputonescore:

\n");

    scanf("%f",&score);

    max=min=score;

    while(       score>=0       )

    {

        if(score>max)  max=score;

        if(       score

        printf("Pleaseinputanotherscore:

\n");

        scanf("%f",&score);

    }

    printf("\nThemaxscoreis%f\nTheminscoreis%f",max,min);

}

3.下面程序的功能是:

计算y=的值。

要求从键盘上输入x的值,精度控制在内。

 

#include<>

#include<>

main( )

{

    float  x,y=0,fz=-1,fm=-1,temp=1;

    printf("Pleaseinputthevalueofx:

\n");

    scanf("%f",&x);

    while(abs(temp)>   )

    {

        fz=     【6】-fz*x     ;

        fm=fm+2;

        temp=fz/fm;

        y+=temp;

    }

    printf("\ny=%f",y);

}

 

4.下面的程序完成两个数的四则运算。

用户输入一个实现两个数的四则运算的表达式,程序采用switch语句对其运算进行判定后执行相应的运算并给出结果。

 

#include<>

main( )

{

    floatx,y;

    charop;

    printf("PleaseinputExpression:

");

    scanf("%f%c%f",&x,&op,&y);

         【7】switch(op)

    

    {

        case'+':

            printf("%g%c%g=%g\n",     【8】     );

                 【9】break     ;

        case'-':

            printf("%g%c%g=%g\n",x,op,y,x-y);

            break;

        case'*':

            printf("%g%c%g=%g\n",x,op,y,x*y);

            break;

        case'/':

            if(     【10】(y>=-1e-6)&&(y<=1e-6)     )

                printf("DivisionError!

\n");

            else

                printf("%g%c%g=%g\n",x,op,y,x/y);

            break;

        default:

printf("ExpressionError!

\n");

    }

}

 

 

题解4 函  数

 习题

一、选择题

1.C语言中函数形参的缺省存储类型是(  B  )。

A.静态(static)                     B.自动(auto)

C.寄存器(register)                 D.外部(extern)

2.函数调用语句function((exp1,exp2),18)中含有的实参个数为(  C  )。

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

3.下面函数返回值的类型是( D   )。

 

square(floatx)

{

    returnx*x;

}

 

A.与参数x的类型相同                  B.是void型

C.无法确定                           D.是int型

4.C语言规定,程序中各函数之间( D   )。

A.不允许直接递归调用,也不允许间接递归调用

B.允许直接递归调用,但不允许间接递归调用

C.不允许直接递归调用,但允许间接递归调用

D.既允许直接递归调用,也允许间接递归调用

5.一个函数返回值的类型取决于( C   )。

A.return语句中表达式的类型           B.调用函数时临时指定

C.定义函数时指定或缺省的函数类型      D.调用该函数的主调函数的类型

6.下面叙述中,错误的是( C )。

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

B.为了提高可读性,编写程序时应该适当使用注释

C.变量定义时若省去了存储类型,系统将默认其为静态型变量

D.函数中定义的局部变量的作用域在函数内部

7.在一个源程序文件中定义的全局变量的有效范围为( C   )。

A.一个C程序的所有源程序文件          B.该源程序文件的全部范围

C.从定义处开始到该源程序文件结束      D.函数内全部范围

8.某函数在定义时未指明函数返回值类型,且函数中没有return语句,现若调用该函数,则正确的说法是(  D  )。

A.没有返回值                         B.返回一个用户所希望的值

C.返回一个系统默认值                  D.返回一个不确定的值

9.函数swap(intx,inty)可实现对x和y值的交换。

在执行如下定义及调用语句后,a和b的值分别为( B  )。

 

inta=10,b=20;

swap(a,b);

 

A.10和10        B.10和20          C.20和10          D.20和20

10.下面错误的叙述是( D   )。

A.在某源程序不同函数中可以使用相同名字的变量

B.函数中的形式参数是局部变量

C.在函数内定义的变量只在本函数范围内有效

D.在函数内的复合语句中定义的变量在本函数范围内有效

二、程序填空

1.求s=1!

+2!

+3!

+…+10!

之和。

程序如下:

 

#include<>

longintfactorial(intn)

{

    intk=1;

    longintp=1;

    for(k=1;k<=n;k++)

            【1】p=p*k;     ;

    return  p;

}

main( )

{

    intn;

    floatsum=0;

    for(n=1;n<=10;n++)

             【2】sum=sum+factorial(n);     ;

    printf("%\n",sum);

}

 

2.以下函数用以求x的y次方。

 

double  fun(doublex,inty)

{

    int  i;

    double  m=1;

    for(i=1;i     【3】<=y或

        m=     【4】m*x     ;

    return  m;

}

 

三、阅读程序并写出运行结果

1.下面程序运行的结果是_____2,4,,6,8________:

 #include<>

#define  MAX_COUNT  4

voidfun( );

main( )

{

    intn;

    for(n=1;n<=MAX_COUNT;n++)

        fun( );

}

voidfun( )

{

    staticintk;

    k=k+2;

    printf("%d,",k);

}

 

4.下面程序运行的结果是___8,17______:

 

#include<>

intfun(intx,inty)

{

    staticintm=0,n=2;

    n+=m+1;

    m=n+x+y;

    returnm;

}

main( )

{

    intj=4,m=1,k;

    k=fun(j,m);

    printf("%d,",k);

    k=fun(j,m);

    printf("%d\n",k);

}

 

题解5 数  组

 习题

一、选择题

1.在下列数组定义、初始化或赋值语句中,正确的是(  C  )。

A.inta[8];a[8]=100;                

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2