C语言基础练习题(含答案)

1

A.12 B.34 C.12345 D.提示出错、无结果

41.若x和y均定义为int 型,z定义为double型,以下不合法的scanf()函数调用语句为

( )。

A.scanf(”%d%lx,%le”,&x,&y,&z); B.scanf (”-*%d%lf ”, &x, &y, &z); C.scanf(”%x%*d%o”, &x,&y);

D。scanf(”%x%o%6.2f”, &x,&y,&z); 42.有如下程序段: int x1,x2;

char y1,y2;

scanf(”%d%c%d%c”,&x1,&y1,&x2,&y2);

若要求x1、x2、y1、y2的值分别为10、20、A、B,正确的数据输入是( )。(注:└┘代表空格)

A.10A└┘20B B.10└┘A20B C.10 └┘A└┘20└┘ B D.10A20└┘B 43.若变量已正确说明为float类型, 要通过语句scanf(”%f %f%f”, &a, &b, &c);给a赋予10.0,

b赋予22.0, c赋予33.0, 不正确的输入形式为( )。

A.10<回车> B.10.0,22.0,33.0<回车> 22<回车> 33

C.10.0<回车> D.10 22<回车>

22.0 33.0<回车> 33<回车>

44.有如下程序,若要求x1、x2、y1、y2的值分别为10、20、A、B,正确的数据输入是( )。

(注:└┘代表空格) int x1,x2; char y1,y2;

scanf(”%d%d”,&x1,&x2); scanf(”%c%c”, &y1,&y2);

A.1020AB B.10└┘20└┘ABC C.10└┘20 D.10└┘20AB

AB

45.已有定义int a=-2;和输出语句:printf(”%8lx”,a);以下正确的叙述是( )。

A.整型变量的输出格式符只有%d一种

B.%x是格式符的一种,它可以适用于任何一种类型的数据 C.%x是格式符

D.%8lx不是错误的格式符,其中数字8规定了输出字段的宽度 46.有如下程序段,对应正确的数据输入是( )。

float x,y;

scanf(”%f%f”, &x,&y); printf(”a=%f,b=%f”, x,y);

A.2.04<回车> B.2.04,5.67<回车> 5.67<回车>

C.A=2.04,B=5.67<回车> D.2.055.67<回车> 47.有如下程序段,从键盘输入数据的正确形式应是( )。(注:└┘代表空格)

float x,y,z;

scanf(―x=%d,y=%d,z=%d‖,&a,&y,&z);

1

A.123 B.x=1,y=2,z=3 C.1,2,3 D.x=1└┘ y=2└┘ z=3 48.以下说法正确的是( )。

A.输入项可以为一个实型常量,如scanf(”%f”,3.5);

B.只有格式控制,没有输入项,也能进行正确输入,如scanf(”a=%d,b=5d”); C.当输入一个实型数据时,格式控制部分应规定小数点后的位数,如scanf(”%4.2f”,&f); D.当输入数据时,必须指明变量的地址,如scanf(”%f”,&f); 49.根据定义和数据的输入方式,输入语句的正确形式为:( )。(注:└┘代表空格)

已有定义:float x,y;

数据的输入方式:1.23<回车> 4.5<回车>

A.scan(”%f,%f”,&x,&y); B.scanf(”%f%f”,&x,&y);

C.scanf(”%3.2f└┘%2.1f”,&x,&y); D.scanf(”%3.2f%2.1f”,&x,&y);

50.根据下面的程序及数据的输入和输出形式,程序中输入语句的正确形式应该为( )。

#include ”stdio.h” main()

{char s1,s2,s3; 输入语句;

printf(”%c%c%c”,s1,s2,s3); }

输入形式:A└┘B└┘C<回车> (注:└┘代表空格) 输出形式:A└┘B

A.scanf(”%c%c%c”,&s1,&s2,&s3);

B.scanf(”%c└┘%└┘c%c”,&s1, &s2,&s3); C.scanf(”%c,%c,%c”,&s1,&s2,&s3); D.scanf(”%c%c”, &s1, &s2,&s3); 51.以下程序的执行结果是:( )。

#include ”stdio.h” main()

{ int x=2,y=3;

printf(”x=%%d,y=%%d\\n”,x,y); }

A. x=%2,y=%3 B. x=%%d,y=%%d C. x=2,y=3 D. x=%d,y=%d 52.以下程序的输出结果是( )。(注:└┘代表空格)

#include ”stdio.h” main()

{ printf(”\\nstring1=s*”, ”programming”); printf(”\\nstring2=%-5s*‖, ”boy”); printf(”string3=%2s*‖, ”girl”); }

A.string1=programming└┘└┘└┘└┘* B.string1=└┘└┘└┘└┘programming* string2=boy* string2=boy└┘└┘*string3=gi* string3=gi*

C.string1=programming└┘└┘└┘└┘* D.string1=└┘└┘└┘└┘programming* string2=└┘└┘boy*string3=girl* string2=boy└┘└┘*string3=girl*

53.根据题目中已给出的数据的输入和输出形式,程序中输入输出语句的正确内容是( )。

1

#include ”stdio.h” main() { int a; float b; 输入语句 输出语句 }

输入形式:1└┘2.3<回车> (注:└┘代表空格) 输出形式:a+b=3.300

A.scanf(”%d%f”,&a,&b); B.scanf(”%d%3.1f”,&a,&b); printf(”\\na+b=%5.3f”,a+b); printf(”\\na+b=%f”,a+b); C.scanf(”%d,%f”,&a,&b); D.scanf(”%d%f”,&a,&b); printf(”\\na+b=%5.3f”,a+b) printf(”\\na+b=%f”,a+b);

54.阅读以下程序,当输入数据的形式为:12,34,正确的输出结果为( )。

#include ”stdio.h” main() { int a,b;

scanf(”%d%d”, &a,&b); printf(”a+b=%d\\n”,a+b); }

A.a+b=46 B.有语法错误 C.a+b=12 D.不确定值 55.若有定义:int x,y; char s1,s2,s3; 并有以下输出数据:(注:└┘代表空格)

1└┘2<回车>

U└┘V└┘W<回车>

则能给x赋给整数1,给y赋给整数2,给s1赋给字符U,给s2赋给字符V,给s3赋给字符W的正确程序段是( )。

A.scanf(”x=%dy=%d”,&x,&y); s1=getchar();s2=getchar();s3=getchar(); B.scanf(”%d%d”,&x,&y); s1=getchar();s2=getchar();s3=getchar(); C.scanf(”%d%d%c%c%c”,&x,&y,&s1,&s2,&s3);

D.scanf(”%d%d%c%c%c%c%c%c”,&x,&y,&s1,&s1,&s2,&s2,&s3,&s3);

2 填空题

1. C语言的符号集包括________、________、________。

2. 结构化设计中的三种基本结构是________、_______、________。

3. C语言源程序文件的后缀是________,经过编译后生成文件的后缀是________,经过链

接后生成文件的后缀是________。

4. C语言的关键字都用________{大写或小写}。

5. 一个函数由两部分组成,它们是_______、_______。 6. 函数体一般包括_______、_______。

7. C语言是通过_______来进行输入和输出的。 8. 以下程序的执行结果________。 #include ”stdio.h” main()

1

{ short i=-1,j=1;

printf(”dec:%d,oct:%o,hex:%x,unsigned:%u\\n”,i,i,i,i); printf(”dec:%d,oct:%o,hex:%x,unsigned:%u\\n”,j,j,j,j); }

9. 以下程序的执行结果是________。

#include ”stdio.h” main()

{ char s=’b’;

printf(”dec:%d,oct:%o,hex:%x,ASCII:%c\\n”, s,s,s,s); }

10.以下程序的执行结果是________。(注:└┘代表空格)

#include ”stdio.h” main()

{ float pi=3.1415927;

printf(”%f,%.4f,%4.3f,.3f”,pi,pi,pi,pi); printf(”\\n%e,%.4e,%4.3e,.3e”,pi,pi,pi,pi); }

11.以下程序的执行结果是:________。

#include ”stdio.h” main()

{ char c=’c’+5;

printf(”c=%c\\n”,c); }

12.以下程序输入1└┘2└┘3后的执行结果是________。(注:└┘代表空格)

#include ”stdio.h” main() { int i,j; char k;

scanf(”%d%c%d”,&i,&k,&j); printf(”i=%d,k=%c,j=%d\\n”,i,k,j); }

13.有以下程序,若输入9876543210后的执行结果是________;若输入为:98└┘76└┘543210

后的执行结果是________;若输入为:987654└┘3210后的执行结果为:________。(注:└┘代表空格)

#include ”stdio.h” main()

{ int x1,x2; char y1,y2;

scanf(”-=<%c”,&x1,&x2,&y1,&y2); printf(”x1=%d,x2=%d,y1=%c,y2=%c\\n”,x,y); }

14.若x和y均为int型变量,则以下语句的功能是________。 x+=y; y=x-y; x-=y; 15.有一输入函数scanf(”%d”,k);则不能使float类型变量k得到正确数值的原因是:________。 16.有如下程序段,输入数据:12345ffl678后,u的值是 【1】 ,v的值是 【2】 。

int u; float v;

scanf(“=%f”,&u,&v);

联系客服:779662525#qq.com(#替换为@)