C语言练习题(谭浩强第四版)..附有答案

更新时间:2024-05-26 16:23:01 阅读量: 综合文库 文档下载

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

高级语言程序设计综合练习一 学号: 姓名:

一、选择题

1、 一个C程序由若干个C函数组成,各个函数在文件中的位置顺序为:( )

A、 任意 B、 第一个函数必须是主函数,其他函数任意 C、 必须完全按照执行的顺序排列

D、 其他函数可以任意,主函数必须在最后

2、 下列四个叙述中,正确的是:( )

A、 C程序中的所有字母都必须小写

B、 C程序中的关键字必须小写,其他标示符不区分大小写 C、 C程序中的所有字母都不区分大小写 D、 C语言中的所有关键字必须小写

3、 下列四个叙述中,错误的是:( )

A、 一个C源程序必须有且只能有一个主函数 B、 一个C源程序可以有多个函数

C、 在C源程序中注释说明必须位于语句之后 D、 C源程序的基本结构是函数

4、 下面不是C语言合法标识符的是:( )

A、abc B、5n C、_4m D、x3

5、 以下叙述不正确的是:( )

A. 分号是C语句的必要组成部分 B. C程序的注释可以写在语句的后面 C. 函数是C程序的基本单位 D. 主函数的名字不一定非用main来表示

6、 C语言中允许的基本数据类型包括:( )

A. 整型、实型、逻辑型 B. 整型、实型、字符型

C. 整型、字符型、逻辑型 D. 整型、实型、逻辑型、字符型

7、 C语言中能用八进制表示的数据类型为:( )

A、字符型、整型 B、整形、实型

C、字符型、实型、双精度型 D、字符型、整型、实型、双精度型

8、 下列属于C语言合法的字符常数是:( )

A、’\\97’ B、”A” C、’\\t’ D、”\\0”

9、 在C语言(VC环境)中,5种基本数据类型的存储空间长度的排列顺序为:( )

A、char

1

高级语言程序设计综合练习一 学号: 姓名:

printf(“%d,%c\\n”,c2-c1,c2-‘a’+’A’);则输出结果是:( ) A、2,M B、3,E

C、2,E D、输出项与相应的格式控制不一致,输出结果不确定 11、 以下合法的赋值语句是:( )

A、x=y=100 B、d--; C、x + y D、c = int(a+b); 12、 在以下一组运算符中,优先级最高的是:( )

A、<= B、== C、% D、&& 13、 下列能正确表示a≥10或a≤0的关系表达式是:( ) A、a>=10 or a<=0 B、a<=10 || a>=0 C、a>=10 || a<=0 D、a>=10 && a<=0 14、 下列只有当整数x为奇数时,其值为“真”的表达式是:( ) A、x%2==0 B、!(x%2==0) C、(x-x/2*2)==0 D、!(x%2) 15、 设a为整型变量,不能正确表达数学关系10=15) C、a>10 && a<15 D、!(a<=10) && !(a>=15) 16、 已知x=43, ch=’A’,y=0;则表达式(x>=y&&ch<’B’&&!y)的值是:( )A、0 B、语法错 C、1 D、“假” 17、 表达式17%4 /8的值为:( )

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

18、 一个可执行的C程序的开始执行点是:( )

A. 程序中的第一个语句 B. 包含文件中的第一个函数 C. 名为main的函数 D. 程序中的第一个函数

19、 组成C语句的一个必不可少的符号是:( )

A. 逗号 B. 引号 C. 冒号 D. 分号

20、 若将int、long、float等类型的数据进行混合运算,其结果的数据类型是:( A. int B. long C. float D. double

21、 下述是C语言中有关变量定义的几个说法,正确的是:( )

A. 变量可以不定义直接使用 B. 一个说明语句只能定义一个变量

C. 几个不同类型的变量可在同一语句中定义 D. 变量可以在定义时进行初绐化 22、 与x * = y + z等价的赋值表达式是:( )

2

高级语言程序设计综合练习一 学号: 姓名:

A. x = y + z B. x = x * y + z C. x = x * (y + z) D. x = x + y * z 23、 当代电子计算机能够自动地处理指定的问题是因为:( )

A.计算机是电动的 B.有解决该问题的计算机程序 C.事先存储了解决该问题的程序 D.以上都不是 24、 以下叙述中最准确的是:( )

A.计算机程序是处理某一问题所有指令的集合

B.计算机程序是处理某一问题所用到的所有数据的集合 C.计算机程序是处理某一问题的所有指令及其数据的集合 D.计算机程序是处理某一问题的所有指令及其数据的有序集合 25、 目前编写计算机程序一般采用的是:( )

A.机器语言 B.汇编语言 C.高级语言 D.英语 26、 设计一个计算机程序最基本的工作是:( )

A.制定正确的算法 B.选择合理的数据结构 C.制定正确的算法和选择合理的数据结构 D.以上都不是 27、 算法具有五个特性,以下选项中不属于算法特性的是:( )

A.有穷性 B.简洁性 C.可行性 D.确定性 28、 下述哪一个不是结构化程序基本结构:( )

A.顺序 B.选择 C.循环 D.嵌套 29、 C语言是一种:( )

A.机器语言 B.汇编语言 C.高级语言 D.以上都不是 30、 C语言源程序的扩展名为:( )

A..exe B..c C..obj D..cpp 31、 C程序编译、连接后最终产生(即计算机执行)的文件的扩展名为( )

A..exe B..c C..obj D..cpp 32、 构成C语言源程序的基本单位是:( )

A.子程序 B.过程 C.文本 D.函数 33、 下列叙述正确的是:( )

A.C语言源程序可以直接在DOS环境中运行

B.编译C语言源程序得到的目标文件可以直接在DOS环境中运行

C.C语言源程序经过编译、连接得到的可执行程序可以直接在DOS环境中运行 D.C语言源程序可以直接在VC++环境中运行 34、 某C程序由一个主函数main()和一个自定义函数max()组成,则该程序:( )

3

高级语言程序设计综合练习一 学号: 姓名:

A.写在前面的函数先开始执行 B.总是从main()函数开始执行 C.总是从max()函数开始执行 D.写在后面的函数先开始执行 35、 以下叙述不正确的是:( )

A.分号是C语句的必要组成部分 B.C程序的注释可以写在语句的后面 C.函数是C程序的基本单位 D.主函数的名字不一定用mian表示 36、 以下为C语句的是:( )

A.a=8 B.a++; C.if(a>8) D. #include 37、 以下所列语句中,合法的语句是:( )

A.a=1,b=2 B.++a; C.a=a+1=5 D.y=int(a);

二、判断题

1. ( T )C语言是严格区分大写和小写的,因此主函数不能写成main()以外的其他形式。 2. ( F )C语言程序是从源文件的第一条语句开始执行的。

3. ( F )C语言对其数据在内存中所占用的实际字节数是有明确规定的。 4. ( F )C语言中/*..*/之间的注释内容是不能跨行的。 5. ( F )C语言中多个以“;”结束的语句不能放在同一行。 6. ( F )变量说明语句int a=b=c=23;是正确的。

7. ( F )字符型数据不可以和整数数据一起进行算术运算。

8. ( T )C语言中强制类型转换不会改变原变量的原有数据类型。 9. ( F )表达式j=-i++和j=-(i++)不相等

10. ( T )程序段:i=8,j=10;printf(\其结果9,10,9,10. 11. ( F )C语言中放在“”之间的内容都被视为字符串的一个构成部分,都可以在屏幕上

原样显示。

12. ( T )计算机程序的执行过程实际上是对程序所表达的数据进行处理的过程。

13. ( T )目前程序设计的理念已经从“面向过程的程序设计”向“面向对象的程序设计”

方面转变。

14. ( T )有人曾提出:计算机程序=算法+数据结构。

15. ( T )在程序设计中提到的算法就是“解决问题的方法和步骤”

16. ( T )在程序设计中提到的数据结构就是“程序处理的对象的表示方法” 17. ( T )计算机程序的算法就是解决“做什么”和“怎么做”的问题。 18. ( T )结构化程序设计的基本理念是:将一个较大的问题细分成若干个较小问题的组合。 19. ( F )C程序的执行是从程序的第一行开始,一直到程序的最后一行结束。 20. ( T )C程序的执行是从主函数的第一行开始,一直到主函数的最后一行结束。

21. (T)设x、t均为int型变量,则执行语句\后,t的值为0 22. ( T )若a和b类型相同,在计算了赋值表达式a=b后b中的值将放入a中,而b中的值

不变

23. ( T )在C程序中,%是只能用于整数运算的运算符 24. ( T )在C语言中,逻辑“真”等价于不等于0的数 25. ( F )C语言中字符型、整型、实型都能用八进制表示 26. ( T )变量的三要素是:变量名、变量类型、变量的值。 书上必会的题:课后题:第三章P83-4,6,7

4

高级语言程序设计综合练习一 学号: 姓名:

一、 选择题

1. 以下说法正确的是( )。

A)C语言程序总是从第一个的函数开始执行

B)在C语言程序中,要调用函数必须在main()函数中定义 C)C语言程序总是从main()函数开始执行

D)C语言程序中的main()函数必须放在程序的开始部分

2. 算法是指为解决某个特定问题而采取的确定且有限的步骤,下面不属于算法的五个特性

的是( )。

A)有零个输入或多个输入 B)高效性 C)有穷性 D)确定性

3. C语言中用于结构化程序设计的3种基本结构是

A)顺序结构、选择结构、循环结构 B)if,switch,break C)for,while,do-while D)if,for,continue

4. 一个C程序的执行是从( )。

A)main()函数开始,直到main()函数结束 B)第一个函数开始,直到最后一个函数结束 C)第一个语句开始,直到最后一个语句结束 D)main()函数开始,直到最后一个函数结束

5. 组成C程序的基本单位是( )。

A)函数 B)标识符 C)表达式 D)语句

6. 若有语句scanf(“%d%d”,&a,&b);要使变量a,b分别得到12和34;正确的输入

形式为( )。 A)12<空格>34<回车> B)12,34<回车> C)1234<回车> D)12:34<回车>

7. C语言中最简单的数据类型包括( )。

A)整型、实型、逻辑型 B)整型、实型、字符型 C)整型、字符型、逻辑型 D)字符型、实型、逻辑型

8. C语言中的标识符只能由字母,数字和下划线三种字符组成,且第一个字符( )。

A)必须为字母 B)必须为下划线

C)必须为字母或下划线 D)可以是字母,数字和下划线中任一字符

9. 下列可用于C语言用户标识符的一组是( )。

A)void, define, WORD B)a3_b3, _123,Car

5

高级语言程序设计综合练习一 学号: 姓名:

C)For, -abc, IF Case D)2a, DO, sizeof

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

A)%= B)/ C)= D)<=

11. 设变量a是int型,f是float型,i是double型,则表达式10+′a′+i*f值的数据

类型为( )。

A)int B)float C)double D)不确定

12. 在C语言中,char型数据在内存中的存储形式是( )。

A)补码 B)反码 C)原码 D)ASCII码

13. 设int类型的数据长度为2字节,则该类型数据的取值范围是( )。

A) 0至65536 B) 0至65535

C) -32767至32768 D) -32768至32767

14. x,y,z被定义为int型变量,若从键盘给x,y,z输入数据,正确的输入语句是A)INPUT x、y、z;

B)scanf(\); C)scanf(\);

D)read(\);

15. 调用getchar和putchar函数时,必须包含的头文件是

A)stdio.h B)stdlib.h C)define D)以上都不对

16. 能正确表示逻辑关系:“a≥10或a≤0”的C语言表达式是

A)a>=10 or a<=0 B)a>=0|a<=10 C)a>=10 &&a<=0 D)a>=10‖a<=0

17. 若变量c为char类型,能正确判断出c为小写字母的表达式是

A)′a′<=c<=′z′ B)(c>=′a′)||(c<=′z′) C)(′a′<=c)and(′z′>=c) D)(c>=′a′)&&(c<=′z′)

18. 若运行时给变量x输入12,则以下程序的运行结果是

main() {int x,y;

scanf(\); y=x>12?x+10:x-12;

printf(\\n\); }

A)0 B)22 C)12 D)10

6

高级语言程序设计综合练习一 学号: 姓名:

19. 已知char ch=′C′;则以下表达式的值是ch=(ch>=′A′ && ch<=′Z′)?(ch+32):ch;

A)A B)a C)Z D)c

20. 请阅读以下程序:

main()

{ int a=5,b=0,c=0; if(a=b+c)

printf(\\n\); else

printf(\$$$\n\); }

以上程序

A)有语法错不能通过编译 B)可以通过编译但不能通过连接 C)输出*** D)输出$$$

21. 若int k=8;则执行下列程序后,变量k的正确结果是

main() {int k=8; switch(k) {case 9:k+=1; case 10:k+=1;

case 11:k+=1;break; default:k+=1;}

printf(\\n\);} A)12 B)11 C)10 D)9

22. 阅读如下程序段

#include \main()

{ int a=45,b=40,c=50,d; d=a>30?b:c; switch(d)

{ case 30 : printf(\); case 40 : printf(\); case 50 : printf(\); default : printf(\);}} 则输出的结果是 A)40,50, B)50,# C)40,# D)40,50,#

二、 填空题

1. 用高级语言编写的程序称为(源)程序,它可以通过解释程序翻译一句执行一句的方式

执行,也可以通过编译程序一次翻译产生目标程序,然后执行。 2. C语言中的标识符只能由字母、下划线和( 数字 ) 组成。 3. C语言源程序注释符号有两种,(/*??*/ )用于块注释,( // )用于行注释。

7

高级语言程序设计综合练习一 学号: 姓名:

4. 源程序test.c经编译产生的目标文件是:( test.obj );经连接处理后,产生的可执

行文件是:( test.exe )。

5. C标准库函数中,数学函数的原型在(math.h )头文件中。

6. 如下语句printf(\\n\35);在执行后的输出结果是 ( e )。 7. 下列程序的输出结果是 ( 1.300000,1.300000 ) 。

#include #include int main()

{ float a=-1.3;b=1.3;

printf(\(a),fabs(b)); return 0; }

8. 将以下程序写成三目运算表达式是( max = a>b ? a : b)。

if(a>b)max=a; else max=b;

9. 若从键盘输入58,则以下程序输出的结果是 ( 585858 ) 。

main() { int a;

scanf(\);

if(a>50)printf(\); if(a>40)printf(\); if(a>30)printf(\);}

10. 阅读下面的程序,当程序在执行时,如果输入的是′A′,则输出结果为( #include \main() { char a;

a=getchar(); switch(a)

{ case 65: printf(\); case 66: printf(\);

default :printf(\\n\);

} }

三、 判断题

1. ( F )一个程序只能由一个C程序文件组成。

2. ( T )一个C程序文件是由一个或多个函数组成的。 3. ( T )一个程序必须包含一个main函数。

4. ( F )main函数必须写在一个C程序文件的最前面。 5. ( F )C程序的执行从程序头开始。 6. ( F )函数体不可以为空。

7. ( F )C程序的注释只能是一行。

8. ( F )C程序中的数据声明和语句必须用“。”结束。 9. ( F )C程序一行只能写一条语句。

10. ( F )在C程序中,符号“Sum”和“sum”相同。

ABother ) 。

8

高级语言程序设计综合练习一 学号: 姓名:

第三章 顺序结构

一、选择题

1. 下面程序的输出是:( ) main()

{ int k=11;

printf(\ }

A) k=11,k=12,k=13 B) k=11,k=13,k=13 C) k=11,k=013,k=oXb D) k=11,k=13,k=b

2. 以下合法的C语言赋值语句是:( )

A)a=b=58 B)k=int(a+b) ; C)a=58,b=58 D)--i;

3. 以下程序的输出结果是:( ) main()

{ int x=10,y=3;

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

A)0 B)1 C)3 D)不确定

4. 若变量已正确说明为int类型,要给a,b,c输入数据,以下正确的输入语句是:(A)read (a,b,c); B)scanf(“%d%d%d”,a,b,c); C)scanf(“%D%D%D”,%a,%b,%c); D)scanf(“%d%d%d”,&a,&b,&b);

5. 执行下面程序段后,c3中的值是:( )

int c1=1 , c2=2 , c3; c3=c1/c2;

A)0 B)1/2 C)0.5 D)1

6. 以下程序段的输出是:( )

float a=57.666;

printf(“*%4.2f*\\n”, a);

A)*57* B)*58* C)*57.66* D)*57.67*

7. 若有以下定义和语句:( ) int a=5,b b=a++;

此处b的值是:( )

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

8. 以下程序的输出结果是:( ) main()

{ int x=10,y=10;

)9

高级语言程序设计综合练习一 学号: 姓名:

printf(\ }

A) 10 10 B) 9 9 C) 9 10 D) 10 9

9. 已知字符A的ASCII码为十进制的65,下面程序的输出是:( ) main() {

char ch1,ch2; ch1='A'+'5'-'3'; ch2='A'+'6'-'3';

printf(\ }

A) 67,D B) B,C

C) C,D D) 不确定的值

10. 两次运行下面的程序,如果从键盘上分别输入6和4,则输出结果是:( main() {

int x;

scanf(\ if (x++>5)

printf(\

else

printf(\

}

A) 7和5 B) 6和3 C) 7和4 D) 6和4

11. 若执行下面的程序从键盘输入3和4,则输出是:( ) main()

{ int a,b,s;

scanf(\ s=a;

if (a

printf(\ }

A) 14 B) 16 C) 18 D) 20

12. 设i是int型变量,f是float型变量,用下面的语句给这两个变量输入值

scanf(\

为了把100和765.12分别赋给i和f,则正确的输入为:( ) A) 100<空格>765.12<回车> B) i=100,f=765.12<回车>

C) 100<回车>765.12<回车> D) x=100<回车>,y=765.12<回车>

) 10

高级语言程序设计综合练习一 学号: 姓名:

已知head 指向一个带头结点的单向链表,链表中每个结点包含数据域(data)和指针域(next),数据域为整型。下面的sum函数是求出链表中所有结点数据域值的和,作为函数值返回。请填空完善程序。

struct link { int data;

struct link *next;} main() { struct link *head; int s; ┆

s=sum(head); /*head 是指向已知单向链表的头结点*/ ┆ }

int sum( 【1】 ) {

struct link *p; int s=0; p=head->next; while(p)

{ s+= 【2】 ; p= 【3】 ; } return(s); }

二、程序填空 答案:【1】struct link *head 【2】 p->data 【3】 p->next

C语言程序设计练习题7

第10章 文 件

一、单选题

1.利用C语言的文件操作,可以把数据永久保存在:( )

A.磁盘 B.内存 C.屏幕 D.键盘

2.若有程序片段 FILE *fp; fp=fopen(“a.txt”,”r”); 则以下说法中正确的是:( )

A.fp指向磁盘文件a.txt的地址

B.fp指向磁盘文件a.txt 所对应的FILE 结构 C.如果fp不为NULL,表示文件打开失败 D.可以利用fp指针对文件a.txt进行写操作

3.fopen函数的作用是:( ) A.将文件的内容读入内存 B.读出文件的大小

C.建立与文件关联的FILE结构体变量并返回该结构体变量的地址 D.向文件写数据

4.已知fp是一个指向已打开文件的指针,ch是一个字符型变量,则ch=fgetc(fp)的作用是:( )

31

高级语言程序设计综合练习一 学号: 姓名:

A.获取键盘输入的字符,并赋值给ch

B.获取fp所指向的文件的第一个字节的内容,并赋值给ch

C.获取fp所指向的文件的当前文件位置指针所指向的一个字节的内容,并赋值给ch

D.将ch的值输出到fp所指向的文件中

6、若执行fopen函数时发生错误,则函数的返回值是________________ 。

A)地址值 B)0 C)1 D)EOF

7、若要用fopen函数打开一个新的二进制文件,该文件要求既能读也能写,则打开方式字符串应是_______。

A)”ab+” B)”wb+” C)”rb+” D)”ab”

8、若以“a+”方式打开一个已存在的文件,则以下叙述正确的是______________。

A)文件打开时,原有文件内容不被删除,位置指针移到文件末尾,可作添加和读操作 B)文件打开时,原有文件内容不被删除,位置指针移到文件开头,可作重写和读操作 C)文件打开时,原有文件内容删除,只可作写操作

D)以上各种说法皆不正确

9、当顺利执行了文件关闭操作时,fclose函数的返回值是_______________。

A)-1 )TURE C)0 D)1

10、已知函数的调用形式:fread (buffer,size,count,fp);其中buffer代表的是____________。

A)一个整型变量,代表要读入的数据项总数 B)一个文件指针,指向要读的文件

C)一个指针,指向要读入数据的存放地址

D)一个存储区,存放要读的数据项

11、fscanf函数的正确调用形式是_________________。 A)fscanf (fp,格式字符串,输出表列); B)fscanf(格式字符串,输出表列,fp); C) fscanf(格式字符串,文件指针,输出表列) D)fscanf(文件指针,格式字符串,输入表列)

12、fwrite函数的一般调用形式是______________。 A)fwrite(butter, count, size fp); B) fwrite(fp, size, count, butter);

C) fwrite(fp, count, size, butter); D) fwrite(butter, size, count, fp); 13、fgetc函数的作用是从指定文件读入一个字符,该文件的打开方式必须是____________。 A)只写 B)追加 C)读或读写 D)答案B和C都正确

14、若调用fputc函数输出字符成功,则其返回值是___________。

32

高级语言程序设计综合练习一 学号: 姓名:

A)EOF B)1 C)0 D)输出的字符

15.fclose函数的作用是:( ) A.删除文件

B.删除文件中的数据

C.释放与该文件相关联的FILE结构体变量 D.清空文件缓冲区

二、判断题

1. 2. 3. 4.

( )C语言中,认为键盘是标准输入文件stdin ( )C语言中,认为显示器是标准输出文件stdout ( )C语言中,文件存取是以字节为单位的。

( )fopen(“c:\\test.dat”,”r”)的作用是打开一个磁盘文件,此文件可以被执行写操作

5. ( )fopen(“test.txt”,”r”)表示为写操作打开一个二进制文件 6. ( )使用文件前必须先打开文件 7. ( )文件使用结束后必须关闭文件

8. ( )fputc函数的作用是把一个字符写到磁盘文件中去。

9. ( )如果文件以二进制形式打开,用fread和fwrite函数就可以读写任何类型的

信息( )。

10. ( )当文件操作完成后必须使用fclose命令关闭文件 ( )。

(第10 章 文件)参考答案

一、单选题

1 A 2 B 3 C 4 B 6 B 7 B 8 A 9 C 10 C 11 D 12 D 13 C 14 D 15 C

二、判断题

1T 2T 3T 4F 5F 6T 7T 8T 9T 10T

三.填空

1.以下程序由终端键盘输入一个文件名,然后从键盘输入一些字符,并依次把它们存放到该文件中,用#作为用户输入结束的标志。 #include #include int main() { FILE *fp;

char ch,filename[10];

printf(\请输入所用的文件名:\ scanf(\

if((fp=fopen(filename,“w”))==NULL) { printf(\无法打开此文件\\n\

33

高级语言程序设计综合练习一 学号: 姓名:

exit(0); }

ch=getchar( );

printf(“请输入一个字符串(以#结束):\ ch=getchar( ); while(ch!=‘#’) { fputc(ch,fp); putchar(ch); ch=getchar(); }

fclose(fp); putchar(10); return 0; }

34

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

Top