C语言练习题1

更新时间:2023-11-18 16:05:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

第八章 结构体与共用体 ·1·

练习题

一、C语言基础知识

1.1 选择题

1. 以下不是C语言的特点的是( B)。

A. 语言简洁紧凑 B. 能够编制出功能复杂的程序 C. C语言可以直接对硬件操作 D. C语言移植性好

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

A.abc123 B.no.1 C._123_ D._ok 3. 正确的C语言标识符是 (A )。

A._buy_2 B.2_buy C.?_buy D.buy? 4. 请选出可用作C语言用户标识符的一组标识符(B )。

A.void B.a3_b3 C.For D.2a define _123 -abc DO WORD IF Case sizeof

5. 下列符号中,不属于转义字符的是( B)。

A.\\\\ B.\\0xAA C.\\t D.\\0 6. 不属于C语言关键字的是(D )。

A.int B.break C.while D.character 7. 是C语言提供的合法关键字的是( B )。

A.Float B.signed C.integer D.Char 8. 以下不能定义为用户标示符的是(D )。

A.scanf B.Void C._3com_ D.int 9. 一个C程序是由(B )。

A. 一个主程序和若干子程序组成 B. 一个或多个函数组成 C. 若干过程组成 D. 若干子程序组成

10. C语言程序的基本单位是(C )。

A.程序行 B.语句 C.函数 D.字符

20.下列变量定义中合法的是 A

A.short _a=1-.le-1; B.double b=1+5e2.5; C.long do=0xfdaL; D.float 2_and=1-e-3;

9xn21.与数学式子对应的C语言表达式是(C )。

2x?1 A.9*x^n/(2*x-1) B.9*x**n/(2*x-1) C.9*pow(x,n)*(1/(2*x-1)) D.9*pow(n,x)/(2*x-1)

第八章 结构体与共用体 ·2·

22.若有代数式

3ab,则不正确的C语言表达式是(C )。 cd A.a/c/d*b*3 B.3*a*b/c/d C.3*a*b/c*d D.a*b/d/c*3 23.已知各变量的类型说明如下: int m=8,n, a, b;

unsigned long w=10; double x=3.14, y=0.12;

则以下符合C语言语法的表达式是(A )。

A.a+=a-=(b=2)*(a=8) B. n=n*3=18 C.x%3 D.y=float (m) 24.以下符合C语言语法的赋值表达式是(B )。

A.a=9+b+c=d+9 B.a=(9+b, c=d+9) C.a=9+b, b++, c+9 D.a=9+b++=c+9

25. 已知字母A的ASCII码为十进制数65,且S为字符型,则执行语句S=’A’+’6’-’3’;

后,S中的值为( A)。

A.’D’ B.68 C.不确定的值 D.’C’ 26.在C语言中,要求运算数必须是整型的运算符是(D )。

A./ B.++ C.*= D.% 36.若有以下定义,则正确的赋值语句是( )。

int x,y; float z;

A.x=1,y=2, B.x=y=100 C.x++; D.x=int (z); 37.设x、y均为float型变量,则不正确的赋值语句是(C )。

A.++x ; B.x*=y-2; C.y=(x%3)/10; D.x=y=0; 38.下列语句中符合C语言的赋值语句是( D)。

A.a=7+b+c=a+7; B.a=7+b++=a+7; C.a=7+b,b++,a+7 D.a=7+b,c=a+7; 39.putchar函数可以向终端输出一个( D)。

A.整型变量表达式值。 B.字符串

C.实型变量值。 D.字符或字符型变量值。 40.以下程序段的输出结果是( C )。

int a=12345; printf(”-\\n”, a);

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

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

( D )。

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);

第八章 结构体与共用体 ·3·

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

A.10A└┘20B B.10└┘A20B C.10 └┘A└┘20└┘ B D.10A20└┘B 45.已有定义int a=-2;和输出语句:printf(”%8lx”,a);以下正确的叙述是(D)。

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

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

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

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<回车>

1.2 填空题

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

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

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

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

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

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

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

{ 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);

第八章 结构体与共用体 ·4·

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);

1. 答案:英文字母、数字、一些有特定含义的标点符号 2. 答案:顺序结构、选择结构、循环结构 3. 答案:C,OBJ,EXE 4. 答案:小写

5. 答案:函数说明部分和函数体 6. 答案:变量定义部分和执行部分 7. 答案:输入和输出函数

8. 答案:dec:-1,oct:177777,hex:ffff,unsigned:65535

dec:1,oct:1,hex:1,unsigned:1

9. 答案:dec:98,oct:142,hex:62,ASCII:b

10.答案:3.141593,3.1416,3.142, └┘└┘└┘└┘└┘3.142

3.141593e+00,3.1416e+00,3.142e+00,└┘└┘3.142e+00

(注:由于c编译系统不同,我们上机使用的机器,其第二个printf语句实际结果为:3.14159e+00,3.142e+00,3.14e+00,└┘└┘3.14e+00,即:小数点后取5位。)

第八章 结构体与共用体 ·5·

11.答案:c=h

12.答案:i=1,k=└┘,j=2

13.答案:第一种情况的执行结果:x1=98,x2=765,y1=4,y2=1

第二种情况的执行结果:x1=98,x2=76,y1=└┘,y2=3

第三种情况的执行结果:x1=98,x2=765,y1=4,y2=2

14.答案:交换x和y的值 15.答案:(1)格式符应为:%f;(2)变量前边未加取地址符&, 即应为scanf(”%f”,&k); 16.答案:【1】123 【2】45.000000

二、选择结构 2.1 选择题

1. 已有定义:int x=3, y=4, z=5; 则表达式!(x+y)+z-1 && y+z/2的值是(D)。

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

2. 设a=5,b=6,c=7,d=8,m=2,n=2, 则执行(m=a>b) && (n=c>d)后n的值为(B)。

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

3. 设x、y和z都是int类型变量,且x=3,y=4,z=5, 则下面的表达式中,值为0的表达式为

()。

A.’x’ && ’y’ B.x<=y

C.x||y+z && y-z D.!((x

4.为了避免嵌套的if-else语句的二义性,C语言规定else总是与(C)组成配对关系。

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

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

5. 逻辑运算符两侧运算对象的数据类型(D)。 A.只能是0或1

B.只能是0或非0正数 C.只能是整型或字符型数据 D.可以是任何类型的数据

6. 以下关于运算符优先顺序的描述中正确的是(C)。

A.关系运算符<算术运算符<赋值运算符<逻辑与运算符 B.逻辑与运算符<关系运算符<算术运算符<赋值运算符 C.赋值运算符<逻辑与运算符<关系运算符<算术运算符 D.算术运算符<关系运算符<赋值运算符<逻辑与运算符 7. 下列运算符中优先级最高的是(C)。

A.< B.&& C.+ D.!= 8. 选择出合法的if语句(设int x,a,b,c;)(A)。 A.if(a=b) c++; B.if(a=b) c++; D.if(a=>b) c++;

9. 能正确表示“当x的取值在[-58,-40]和[40,58]范围内为真,否则为假”的表达式是(C)。

本文来源:https://www.bwwdw.com/article/i7tv.html

Top