C语言练习题

C语言练习题

 

一、选择题:

1、能将高级语言编写的源程序转换成目标程序的是______

A. 编辑程序      B. 编译程序      C. 解释程序      D. 链接程序

 

2C语言源程序是由______构成的。

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

 

3、下列字符序列中,可以作为变量名的是_______

AC++    B_DAY      C123abc    Da b c

 

4、下列数据中,不属于字符型常量的是______

A. 'A'      B. '\n'      C. "B"      D. '\72'

 

5C语言中用______表示逻辑“真”值。

A. ty      B. TRUE      C. 0      D. 非零数值

 

6、若已定义xydouble 类型,则x=1, y=x+3/2值是______

A1      B2      C2.0       D2.5

 

7、以下程序段的输出结果是______

int a=1234;

printf("%2d/n",a);

A. 12      B. 34      C. 1234      D. 提示出错,无结果

 

8、设有定义:long x=123456L; 则以下能够正确输出变量 x 值的语句是_____

A. printf("x=%d\n",x);

B. printf("x=%ld\n",x);

C. printf("x=%8dL\n",x);

D. printf("x=%Ld\n",x);

 

9、用 scnaf(%d,%d,&x,&y) 输入数据时,下列输入方式中正确的是______

A123,456    B123 456    C123;456    D123/456

 

10、设 x=3, y=4, z=5,则((x+y)>z)&&(y==z)&&x||y+z 的值为______

A1    B0    C-1    D2

 

11、执行语句“x=(a=5,b=a++)”后,xab的值依次为______

A. 6,6,5      B. 6,5,5      C. 6,5,6      D. 5,6,5

 

12、有以下程序

void main()

{

    char a='a',b;

    printf("%c,",++a);

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

}

程序运行后的输出结果是______

A. b,b      B. b,c      C. a,b      D. a,c

 

13、设x的值为 5,则表达式(++x)+(++x)+(++x)的值是______

A.15      B. 24      C. 20      D. 25

 

14、设a=1b=2c=3,则表达式______的值为真。

A. !(a!=b)            B. (a<b)&&(a>c)

C. (b>c)||(b>a)       D. (c==a)||(c==b)

 

15、为了表示关系 xyz,应使用的C语言表达式是______

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

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

 

16、与语句"y=(x>0?1:0)"等价的是______

A. if(x>0) y=1;

B. if(x)   y=1;

   else    y=0;

C. y=1;

   if(x<=0)  y=0;

D. if(x<=0)  y=1;

 

17、为了避免嵌套的条件分支语句的二义性,C语言规定,C程序中的else总是与______组成配对关系。

A. 缩排位置相同的if           B. 在其之前末配对的if

C. 在其之前末配对的最近的if   D. 同一行上的if

 

18、有一函数

y=1   (x>0)

y=0   (x=0)

y=-1  (x<0)

以下程序段中不能根据x的值正确计算出y的值的是______

A. if(x>0) y=1; else if(x==0) y=0; else y=-1;

B. y=0; if(x>0) y=1; else if(x<0) y=-1;

C. y=0; if(x>=0) if(x>0) y=1; else y=-1;

d. if(x>=0) if(x>0) y=1; else y=0; else y=-1;

 

19. C语言中,关于 while do while 循环语句的正确叙述是______

A. while 语句的循环控制条件为真时结束循环。

B. do while 语句的循环控制条件为真时结束循环。

C. while 循环体中不允许是空语句。

D. do while 的循环体至少被执行一次。

 

20、有以下程序片段

int n=0,p;

do { scanf(%d",&p); n++; } while(p!=12345&&n<3);

此处 do-while 循环的结束条件是

A. p的值不等于12345并且n的值小于3

B. p的值等于12345并且n的值大于等于3

C. p的值不等于12345或且n的值小于3

D. p的值等于12345或且n的值大于等于3

 

21、以下程序的运行结果为______

main()

{

    int i,sum;

    i = sum = 0;

    while(i<=100)

       sum += i;

       i++;

    printf(“1+2+3+...+100=%d”,sum);

}

A0    B5050    C1    D.程序无终止运行

 

 

二、程序阅读题,写出程序运行的结果:

1

void main()

{

    int k=2,i=2,m;

    m=(k+=i*=k);

    printf("%d,%d\n",m,i);

}

输出结果_________________

 

2

    void main()

    {  

char grade='C';

       switch(grade)

       {

           case 'A': printf(">=85.");

           case 'B': printf(">=70.");

           case 'C': printf(">=60.");

           case 'D': printf("<60.");

           default:  printf("error.");

       }

    }

输出结果_________________

 

3

    #include "stdio.h"

    void main()

    {

       int k=2;

       switch(k)

       {

           case 1: printf("%3d",k++);

                   break;

           case 2: printf("%3d",k++);

           case 3: printf("%3d",k++);

                   break;

           case 4: printf("%3d",k++);

           default:printf("FULL!\n");

       }

    }

输出结果_________________

 

4

#include "stdio.h"

void main()

{

    int x=3;

    do

    {

       printf("%2d",x--);

    }while(x);

}

输出结果_________________

 

三、程序设计题

1、求 ax2+bx=c = 0 方程的根,其中a,b,c由键盘输入。

2有一函数:

<!--[if gte vml 1]><v:shapetype id="_x0000_t75" coordsize="21600,21600" o:spt="75" o:preferrelative="t" path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f"> <v:stroke joinstyle="miter"/> <v:formulas> <v:f eqn="if lineDrawn pixelLineWidth 0"/> <v:f eqn="sum @0 1 0"/> <v:f eqn="sum 0 0 @1"/> <v:f eqn="prod @2 1 2"/> <v:f eqn="prod @3 21600 pixelWidth"/> <v:f eqn="prod @3 21600 pixelHeight"/> <v:f eqn="sum @0 0 1"/> <v:f eqn="prod @6 1 2"/> <v:f eqn="prod @7 21600 pixelWidth"/> <v:f eqn="sum @8 21600 0"/> <v:f eqn="prod @7 21600 pixelHeight"/> <v:f eqn="sum @10 21600 0"/> </v:formulas> <v:path o:extrusionok="f" gradientshapeok="t" o:connecttype="rect"/> <o:lock v:ext="edit" aspectratio="t"/> </v:shapetype><v:shape id="_x0000_i1025" type="#_x0000_t75" style='width:137.25pt; height:56.25pt'> <v:imagedata src="file:///C:\Users\liaosy\AppData\Local\Temp\msohtml1\01\clip_image001.wmz" o:title=""/> </v:shape><![endif]--><!--[if !vml]--><!--[endif]-->

编写一程序,输入 x,输出 y 值。

3、由键盘输入三个数 a,b,c,输出其中最大数。

4、给出百分制成绩,要求输出成绩等级 'A''B''C''D''E'90分以上为 'A'8189分为 'B' 7079 分为 'C'60-69分为 'D'60分以下为 'E'

5、某人摘下一些桃子,卖掉一半,又吃了一只;第二天卖掉剩下的一半,又又吃了一只;第三天、第四天、第五天都如此办理,第六天一看,发现就剩下一只桃子了。编写一个程序,求某人共摘了多少只桃子。

6、百钱百鸡问题。中国古代数学家张丘建在他的《算经》中提出了著名的百钱百鸡问题:鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值钱一;百钱买百鸡,翁、母、雏各几何 ? 编写一程序解决此问题。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值