国家开放大学《C语言程序设计》章节测试参考答案_第1页
国家开放大学《C语言程序设计》章节测试参考答案_第2页
已阅读5页,还剩79页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、国家开放大学C语言程序设计章节测试参考答案第一章 C语言概述自测练习一:C语言字符集 自测练习1.在C语言字符集中,包含有全部26个英文大写字母和对应的小写字母。()2.在C语言字符集中,一个大写英文字母和它的小写英文字母被视为不同的字符。()3.在C语言程序中, ABC和abc被作为同一标识符使用。(×)自测练习二: C语言字符集 自测练习1.在C语言中,保留字是有专门含义和作用的,不能作为一般标识符使用。()2.在C语言中,作为标识符的第一个字符只能是英文字母或下划线,不能是数字字符。()3.C语言中使用的字符常量,其起止标记符是( )。a. 双引号b. 尖括号c. 单引号d.

2、中括号4.C语言中使用的字符串常量,其起止标记符是( )。a. 双引号b. 中括号c. 尖括号d. 单引号自测练习三:C语句分类 自测练习1.在C语言中,一条简单语句的结束符是( )。a. 分号b. 空格c. 冒号d. 逗号2.在C语言中,每条复合语句的开始标记字符为( )。a. <b. c. (d. 3.不符合C语言规定的复合语句是( )。a. x=0; b. c. ;d. y=10 4.C语言中的选择类语句有两条,它们是( )。a. else和caseb. if和switchc. if和elsed. switch和case自测练习四:函数分类与使用 自测练习1.在每个C语言程序中都必

3、须包含有这样一个函数,该函数的函数名为( )。a. nameb. mainc. MAINd. function2.C语言程序中的基本功能模块为( )。a. 标识符b. 函数c. 表达式d. 语句3.一个函数定义所包含的两个部分是( )。a. 函数头和函数体b. 函数原型和函数体c. 函数名和参数表d. 函数头和函数尾4.一个程序文件开始使用的每条预处理命令,其首字符必须是( )。a. #b. c. %d. $5.在一个程序文件中,若要使用#include命令包含一个系统头文件,则此头文件所使用的起止定界符为一对( )。a. 双引号b. 花括号c. 尖括号d. 单引号6.在一个函数定义中,函数体

4、的格式是一条复合语句。()7.一个函数必须返回一个值,不允许定义不返回任何值的函数。(×)8.若要在程序文件中使用数学函数,则需要引入的系统头文件为math.h。()9.若要在程序文件中使用标准输入和输出函数,则需要引入的系统头文件为stdio.h。()自测练习五:C语言程序的层次结构 自测练习1.在C语言程序中,单行或行尾注释使用的标记符为( )。a. /b. *c. /*d. */2.在C语言程序中,多行注释使用的结束标记符为( ).a. /*b. *c. */d. /3.在程序文件中添加注释内容是为了增强程序的可读性。()4.在一行中出现多条语句时,注释语句只能为最后一条语句。

5、()自测练习六:标准输出函数printf()的使用 自测练习1.用于输出表达式值的标准输出函数是( )。a. print()b. scanf()c. output() d. printf()2.在printf()函数调用的格式字符串中,每个格式符的先导字符为( )。a. #b. c. $d. %3.在printf()函数调用的格式字符串中,若使用格式符为“%d”,则对应输出的数据类型为( )。a. intb. charc. floatd. double4.在printf()函数调用的格式字符串中,若使用格式符为“%f”,则对应输出的数据类型为( )。a. charb. floatc. intd

6、. double5.在printf()函数调用的格式字符串中,若使用格式符为“%5d”,则规定对应输出的数据占用的字符位置个数为( )。a. 5b. 4c. 6d. 36.在利用printf()函数向屏幕输出数据时,需要在参数表的开始位置使用相应的格式字符串。()7.在“printf("%d - %d = %d",x,y,x-y);”语句所使用的格式字符串中,包含有3个格式符。()8.在执行“printf("s=%sn","abc");”语句时,输出结果为s=abc。()9.在“printf("s=%cn",&qu

7、ot;abc");”语句中,格式符的使用同后面的输出数据相适合。(×)10.在执行“printf("%d - %d = %d",x,y,x-y);”语句时,其输出的前两个数据值之间将采用逗号分开。(×)自测练习七:标准输入函数scanf()的使用 自测练习1.程序运行中需要从键盘上输入多于一个数据时,若不特别规定分隔符,则输入的各数据之间所使用的分隔符为( )。a. 空格或回车b. 空格或逗号c. 逗号或回车d. 逗号或分号2.用于从键盘上为变量输入值的标准输入函数是( )。a. print()b. scanf()c. printf()3.在s

8、canf()函数调用的格式字符串中,每个格式符的先导字符为( )。a. %b. #c. d. $4.在scanf()函数调用的格式字符串中,若使用格式字符串为“%d,%d”,则规定输入的两个数据之间的分隔符为( )。a. $b. #c. d. %5.在利用scanf()函数从键盘输入数据时,需要在参数表的开始位置使用相应的格式字符串。()6.在“scanf("%d %d",&x,&y);”语句所使用的格式字符串中,包含有2个格式符。()7.在执行“scanf("%d %d",&x,&y);”语句时,需要从键盘上输入2个整数

9、。()自测练习八:C语言程序的上机操作过程 自测练习1.C语言源程序文件的扩展名为( )。a. exeb. objc. cd. cpp2.每个C语言程序文件的编译错误的类型有( )。a. 2种b. 3种c. 1种d. 4种3.每个C程序文件在编译时可能出现有警告性错误,其对应的标识符号为( )。a. errb. errorc. warnd. warning4.一个C语言程序只能够包含一个程序源文件。(×)5.一个C语言程序只能够包含一个用户头文件。(×)6.在C语言程序上机操作的过程中,编译程序的操作步骤之后是连接操作。()第一章 综合练习一、单项选择题1C语言中的循环类语

10、句有3条,它们是()。A. for,if,whileB. for,while,doC. while,do,switchD. for,break,do2C语言中的跳转类语句有四条,它们是goto,return和()。A. break,constB. static,continueC. break,continueD. while,extern3当不需要函数返回任何值时,则所使用的返回类型为()。A. intB. unionC. voidD. Void4在一个函数定义中,函数头包括的3个部分依次为函数类型、函数名和()。A. 表达式B. 语句C. 函数体D. 参数表5在一个程序文件的开始,若需要使

11、用一个包含命令包含一个头文件时,则命令标识符为()。A. #cludeB. #constC. #includeD. #defile6在#include预处理命令中,不可以包含()。A. 系统头文件B. 程序文件C. 用户头文件D. 目标文件7在printf()函数调用的格式字符串中,若使用格式符为“%6.2f”,则规定对应输出的数据占用的字符位置个数为()。A. 5B. 6C. 4D. 28在printf()函数调用的格式字符串中,若使用格式符为“%6.2f”,则规定对应输出的数据中,其小数部分占用的字符位置个数为()。A. 5B. 6C. 4D. 29在printf()函数调用的格式字符串中

12、,若使用格式符为“%6.2f”,则规定对应输出的数据中,其整数部分占用的字符位置个数为()。A. 6B. 4C. 3D. 210在scanf()函数调用的格式字符串中,若使用格式符为“%f”,则对应输入的数据类型为()。A. charB. intC. floatD. double11在scanf()函数调用的格式字符串中,若使用格式符为“%Lf”,则对应输入的数据类型为()。A. charB. intC. floatD. double12每个C程序文件在编译时可能出现有严重性错误,其对应的标识符号为()。A. warningB. errorC. warnD. err13在VC+环境下,为运行一

13、个程序而建立的工作区文件的扩展名为()。A. objB. exeC. dswD. dsp二、判断题1在C语言中,作为标识符的第一个字符可以是英文字母、数字或下划线字符。(×)2在C语言中,标识符中的非首字符可以是英文字母、数字或下划线字符。()3当需要在程序文件中引入用户定义的头文件时,使用的不是#include命令。(×)4使用#include命令只能包含头文件,不能包含其他任何文件。(×)5注释语句的内容只会出现在源程序文件中,不会出现在编译后而生成的目标代码文件中。()6一条注释语句的最后必须使用分号结束。(×)7源程序文件被编译成目标文件后,其目

14、标文件中也存在有对应的注释内容。(×)8源程序文件被编译成目标文件后,源程序文件中的注释语句仍然存在。()9在一条注释语句中,除了注释内容外,不需要使用任何特定的标记符。(×)10多行注释语句的开始和结束标记符可以互换使用。(×)11在执行“printf("%5d",x);”语句时,其输出的x的值所占用的显示宽度将大于等于5个字符位置。()12在执行“printf("%6d",x);”语句时,其输出的x的值所占用的显示宽度将小于6个字符位置。(×)13在执行“printf("%8.2f",x);

15、”语句时,其输出的x的值所占用的显示宽度将大于等于8个字符位置。(×)14在“scanf("%d %d",&x,&y);”语句中,x和y变量均为整数类型。()15在“scanf("%s",x);”语句中,x变量不是字符指针类型。(×)16在“scanf("%d-%d=%d",&x,&y,&z);”语句中,有语法错误。(×)17在C语言程序上机操作的过程中,连接程序的操作步骤之前是编译程序。()18在C语言程序上机操作的过程中,需要对每个用户头文件进行单独的编译操作。

16、(×)19在C语言程序上机操作的过程中,不能够对用户头文件进行单独的编译操作。()第二章 基本数据类型和表达式自测练习一:数据类型 自测练习1.char类型的长度为( )。a. 1b. 3c. 4d. 22.常数120的数据类型为( )。a. 双精度型b. 短整型c. 长整型d. 整型3.一个无符号字符类型的值域范围是( )。a. -127到255b. 0到255 c. 1到255d. -128到+1274.广义整数类型包括短整型、标准整型和长整型3种。(×)5.短整型、标准整型和长整型的长度分别为2、4和8。(×)自测练习二:常量 自测练习1.数值常量0x62的

17、表示方式为( )。a. 八进制b. 十进制c. 二进制d. 十六进制2.在C语言中,表示换行符的转义字符为( )。a. rb. f c. md. n 3.字符串"It's'"中包含的字符个数为( )。a. 8b. 7c. 6d. 54.执行“printf("%c",'B'+2);”语句后得到的输出结果为( )。a. Db. Bc. Cd. A5.常数3.26是双精度浮点数。(×)6.常数3.26f是单精度浮点数。(×)7.浮点数包括单精度浮点数和双精度浮点数两种。()8.常数3.26是双精度浮点数。(&

18、#215;)自测练习三:变量 自测练习1.要定义a和b为两个整型变量,则使用的定义语句为( )。a. int a:b;b. int a b; c. int a,b; d. int a;b; 自测练习四:运算符和表达式 自测练习1.运算符优先级最高的是()。a. /b. |c. +d. %2.下列数值中最小值是()。a. 28/8b. 28%8c. 35/3d. 35%33.已知x的初值为15,则下列各表达式中的最小值为()。a. x*=2b. x+=10c. x/=2d. x%=204.若x=5,y=10,则计算y*=+x表达式后,y的值为()。a. 40b. 60c. 50d. 555.设x

19、和y均为逻辑值,则x && y为真的条件是()。a. 其中一个为假b. 它们均为假c. 它们均为真d. 其中一个为真6.x<=10的相反表达式为()。a. x>=10b. x!=10c. x>0 d. x>107.表达式(float)25/4的值为6。(×)8.表达式x=x+y表示成复合赋值表达式为x=+y。(×)9.增量表达式+y表示成赋值表达式为y=y+1。()10.表达式sizeof(25)的值等于4。()11.逻辑表达式(x>3 && x<10)的相反表达式为(x<=3 | x>=10)

20、。()自测练习五:一些系统函数的使用 自测练习1.函数pow(4,3)的值为()。a. 64.0b. 27c. 12.0d. 56 2.假定x=4.6,则函数floor(x)的值为()。a. 5.0b. 4.0c. 4.6d. 4.53.正弦函数sin48在C语言的表示为()。a. sin(48*3.14159)b. sin(48)c. sin(48/180.0) d. sin(48*3.14159/180)4在C语言中,求一个实数的绝对值的数学函数为fabs(x)。()5.已知x=-25,则abs(x)的值为25。()6.在C语言中,正弦、余弦或正切函数的参数的度量单位是度。(×)

21、第二章 综合练习一、单项选择题(1-12题每题3分,13-16题每题4分,共48分)1.int类型的长度为()。A. 1B. 2C. 4D. 82.常数-4.25的数据类型为()。A. 整型B. 单精度型C. 双精度型D. 长双精度型3.一个有符号字符类型的值域范围是()。A. -128到+127B. 0到255C. -127到255D. 1到2554.字符串"Its40n"的长度为()。A. 5B. 6C. 7D. 85.实数340.25对应的规格化浮点数为()。A. 340.25B. 34.025e1C. 3.4025e2D. 0.34025e36.要利用const保留

22、字定义整型常量ABC的值为10,则对应的定义语句为()。A. const int ABC 10;B. const int ABC,10;C. const int ABC;10;D. const int ABC=10;7.要利用#define命令定义ABC常量的值为100,则对应的命令格式为()。A. #define ABC=100B. #define ABC=100C. #define ABC 100D. #define ABC;1008.下列数值中最大值是()。A. 28/8B. 35/3C. 28%8D. 35%49.在下面运算符中,优先级最高的是( )。A. !B. &&

23、C. |D. !=10.设有语句序列为“int a=12; a+=a*a;”,则执行结束后,a的值为()。A. 12B. 144C. 156D. 28811在C语言中,用于比较大小的关系运算符的总数为()。A. 3B. 4C. 5D. 612.x>0 && y<=5的相反表达式为()。A. x<=0 | y>5B. x>0 | y<=5C. x<=0 && y>5D. x<0 && y!=513.假定x是一个逻辑量,则(x && !x)和(x | !x)的值分别为( )。A.

24、1和1B. 0和0C. 0和1D. 1和014.假定x=4.6,则函数ceil(x)的值为( )。A. 4.0B. 4.6C. 4.5D. 5.015.表达式floor(2.3457*100+0.5)/100的值为( )。A. 2.35B. 2C. 2.34D. 2.3457二、判断题(每题4分,共52分)16.常数3.26e4是双精度浮点数。()17.浮点数只有单精度表示,没有双精度表示。(×)18.定点数包括单精度定点数和双精度定点数两种。()19.定义符号常量只有一种方法,就是采用预处理命令#define的方法。(×)20.使用const语句定义一个符号常量时,则必须

25、对它同时进行初始化。()21.在一条变量定义语句中,定义的变量和赋给它的初值之间只能使用等号(=)。()22.假定x=5,则表达式2+x+的值为7。()23.表达式(int)14.6%5的值为0。(×)24.表达式x=x+1表示成增量表达式为x+。(×)25.假定x=5,则执行“a=(x?10:20);”语句后a的值为10。()26.逻辑表达式(a>b | b=5)的相反表达式为(a>b && b=5)。(×)27.在C语言中,求一个整数的绝对值的数学函数为abs(x)。()28.在C语言中,退出程序运行的系统函数为exit()。()第

26、三章 流程控制语句自测练习一:if条件语句 自测练习1.若x的值为5,则执行“if(x>10) x+; else x-;”语句后,x的值为( )。a. 4b. 6c. 3d. 52.若x的值为-10,则执行“if(x) x+; else x-;”语句后,x的值为( )。a. -9b. -11c. -10d. 03.在if语句中,可以带有else子句,也可以省略它。(×)4.在if语句中,每个else关键字与它前面同层次并且最接近的if关键字相配套。(×)5.执行下面程序的输出结果为#include<stdio.h>void main() int a=25,

27、b=18;if(a>b) printf("%sn","a>b");if(a=b) printf("%sn","a=b"); if(a<b) printf("%sn","a答案:a>b6.执行下面程序的输出结果为#includestdio.h>#include<stdio.h>void main() int a=18,b=4,c=0;if(a/b) c+=a/b; c+=a%b;if(a%b) a=a/b; b=a%b; printf("

28、;%d",a+b+c);答案:a>b自测练习二:switch开关语句 自测练习1.在switch语句的每个case块中,假定都是以break语句结束的,则此switch语句容易被改写成语句( )。a. ifb. whilec. dod. for2.每个C语言程序文件的编译错误的类型有( )。2. 在switch语句中,每个保留字case后面的表达式必须是( )。a. 函数调用b. 变量种c. 一般表达式d. 常量3.执行下面程序的输出结果为#include<stdio.h>void main() int x=5,y=0;switch(2*x-3) case 4: y

29、+=x; break;case 7: y+=2*x+1; break;case 10: y+=3*x; break;printf("y=%dn",y);答案:y=114.执行下面程序的输出结果为#include<stdio.h>void main() int x=9,y=0;switch(x%3) case 0: y+=x;case 1: y+=2*x+1;case 2: y+=3*x; break;default: y+=x-1;printf("y=%dn",y);答案:y=55自测练习三:for循环语句 自测练习1.当处理问题时的循环次数

30、是确定的,则采用的最合适的循环方式为( )。a. do-whileb. switchc. whiled. for2.若需要定义一个符号常量,并且使C语言能够进行类型检查,则应在定义语句的开始使用保留字( )。a. caseb. continuec. staticd. const3.已知'A''Z'的ASCII码为6590,当执行“int x='C'+5;”语句后x的值为( )。a. 70b. 73c. 72d. 714.在一条变量定义语句中可以同时定义多个变量。()5.在一条变量定义语句中,当同时定义多个变量时,各变量之间只能使用逗号分开。()6

31、.在一条变量定义语句中,定义的变量和赋给它的初值之间不需要使用等号(=)。(×)自测练习四:while循环语句 自测练习1.每次先进行循环条件的判断,然后再执行循环体的语句为( )。a. for和whileb. for和doc. switch和breakd. while和do2.若n的值为5,s的值为0,则执行“while(n>0) s+=n-;”语句后,s的值为( )。a. 13b. 14c. 15d. 123.当循环次数确定时,while循环语句能够转换为for循环语句。()4.while循环语句中的循环体至少被执行一次。(×)5.执行下面程序的输出结果为#inc

32、lude<stdio.h>void main() int n=10,y=0;while(n>5) y+=n-;printf("y=%dn",y);答案:y=406.执行下面程序的输出结果为。#include<stdio.h>void main() int i=1,p=1,s=1;while(s<40) i+; p=p*i; s=s+p;printf("s=%dn",s);答案:s=153自测练习五:do循环语句 自测练习1.流程控制类语句包括的3类语句为( )。a. 选择、循环、跳转b. 选择、循环、输入c. 选择、输

33、入、输出d. 循环、选择、函数2.若i的值为0,则执行“do i+; while(i*i<10);”语句的过程中,循环体被执行的次数为( )。a. 2b. 3c. 5d. 43.do-while循环语句中的循环体至少被执行一次。()4.do-while循环语句是以分号结束的语句。()5.执行下面程序的输出结果为#include<stdio.h>void main() int x=16,s=0;do s+=x; x-=3; while(x>0);printf("s=%dn",s);答案:s=516.此程序的功能是从键盘上输入两个(),输出结果为它们的平

34、方和_。#include<stdio.h>void main() int x,y;do scanf("%d %d",&x,&y); while(x<=0 | y<=0);printf("%dn",x*x+y*y);答案:正整数自测练习六:跳转类语句 自测练习1.若要结束所在函数的执行过程,返回到调用该函数所在位置,则使用的语句为( )。a. gotob. continuec. returnd. break2.要结束所在循环语句中循环体的一次执行,则在其中使用的语句为( )。a. gotob. returnc. br

35、eakd. continue3.break语句只能使用在循环语句中。(×)4.return语句只有保留字,没有其他成分。(×)5.continue语句只有保留字,没有语句体。()6.执行下面程序的输出结果为#include<stdio.h>void main() int i,s=0;for(i=1; i<10; i+) s+=i*(i+1);if(s>40) break; printf("s=%dn",s);答案:s=707.执行下面程序的输出结果为#include<stdio.h>void main() int i=

36、0,s=0;do i+=2;if(i%3=0) continue;s+=i*(i+1); while(s<60);printf("s=%dn",s);答案:s=98第三章 综合练习一、单项选择题1.若x的值为15,则执行“if(x>10) x+; else x-;”语句后,x的值为( )。a. 16b. 10c. 15d. 142.若x的值为-10,则执行“if(!x) x+; else x-;”语句后,x的值为( )。a. 0b. -10c. -9d. -113.若x的值为10,则执行“switch(x%3)case0: x+; case 1:x+; case

37、 2: x+;”语句后,x的值为( )。a. 13b. 10c. 12d. 114.若x的值为10,则执行“switch(x%3)case0: x+; break; case 1:x+; default: x+;”语句后,x的值为( )。a. 9b. 10c. 12d. 115.若n的值为10,则执行“for(i=1;i<n; i+) S;”语句的过程中,表达式i=1共被执行的次数为( )。a. n-1b. 1c. nd. n+16.若n的值为10,则执行“for(i=0; i+) if(i>n/3) break;”语句后,i的值为( )。a. 6b. 3c. 4d. 57.若n的

38、值为10,则执行“for(i=1;i<n; i+) S;”语句的过程中,表达式i+共被执行的次数为( )。a. nb. n+1c. 1d. n-18.若n的值为10,则执行“for(i=0;i<n; i+) for(j=i; j<n; j+) S;”语句后,内层循环体S语句的执行总次数为( )。a. n*nb. n(n+1)/2c. (n+1)/2d. n(n-1)/29.若n的值为10,则执行“while(n->0)s+=n;”语句的过程中,循环体被执行的次数为( )。a. 9b. 11c. 8d. 1010.若n的值为5,s的值为0,则执行“while(n->

39、0) s+=n;”语句后,s的值为( )。a. 15b. 12c. 10d. 1411.在下列的语句中,必须以分号作为结束的语句是( )。a. whileb. forc. dod. switch12.若n的值为5,s的值为0,则执行“do s+=n-; while(n>0);”语句后,s的值为( )。a. 14b. 12c. 15d. 1313.要结束任一种循环语句或switch语句的执行,则在其中使用的语句为( )。a. gotob. breakc. continued. return二、判断题14.在if语句中,必须带有else子句,不能省略它。(×)15.在for循环语句

40、的头部,for后面括号内共有3个表达式位置。()16.for循环语句不能够被转换为while循环语句。(×)17.while循环语句中的循环体可能不会被执行。()18.while循环语句的循环体,只能是复合语句,不能是简单语句。(×)19.do-while循环语句中的循环体可能不会被执行。(×)20.do-while循环语句的循环体,只能是复合语句,不能是简单语句。(×)21.do-while循环语句是以循环体结尾的。(×)22.break语句可以使用在switch语句中。()23.return语句中可以带有返回表达式。()24.continu

41、e只能使用在任一种循环语句的循环体中。()三、程序填空题25.#include<stdio.h>void main() int a=5,b=8,c=6,d=15,x,y; if(a>=b) x=a; else x=b; if(c>=d) y=c; else y=d; if(x>=y) printf("%dn",x); else printf("%dn",y);答案:1526.#include<stdio.h>void main() int x=5,y=8,z=12; if(x>y && x&

42、gt;z) printf("%dn",x); else if(y>x && y>z) printf("%dn",y); else printf("%dn",z);答案:1227.#include<stdio.h>void main() int a=5,b=8,c; if(3*a>2*b) c=2*a+3*b; else if(a=b) c=a*a+b*b; else c=a*b+3; printf("c=%dn",c);答案:c=4329.#include<std

43、io.h>void main() int x=5,y=0; switch(2*x-3) case 4: y+=x; case 7: y+=2*x+1; case 10: y+=3*x; printf("y=%dn",y);答案:y=2629.#include<stdio.h>void main() char ch; int a,b,c; scanf("%c",&ch); scanf("%d %d",&a,&b); switch(ch) case '+': c=a+b; brea

44、k; case '-': c=a-b; break; case '*': c=a*b; break; case '/': c=a/b; break; default: printf("Error!n"); printf("%d%c%d=%dn",a,ch,b,c);答案:3 5=1530.#include<stdio.h>void main() int i,s=0; for(i=16; i>0; i-=2) if(i%3=0 | i%4=0) s+=i; printf("s=%d

45、n",s);答案:s=4631.#include<stdio.h>void main() int i,x,y,s=0; scanf("%d %d",&x,&y); if(x>y) i=x; x=y; y=i; for(i=x; i<=y; i+) if(i%2=1) s+=i*i; printf("s=%dn",s);答案:奇数32.#include<stdio.h>const int N=100;void main() int a,b; for(a=2; a<=N; a+) for(b

46、=2; b*b<=a; b+) if(a%b=0) break; if(b*b>a) printf("%d ",a); 答案:素数(质数)33.#include<stdio.h>void main() int i=0, s=0; while(s<50) i+=2; s+=i*i; printf("s=%dn",s);答案:s=5634.#include<stdio.h>void main() int x,p=2; scanf("%d",&x); while(x>=p) if(x%

47、p=0) printf("%d=%d*%dn",x,p,x/p); break; else p+;答案:35=5 735.#include<stdio.h>void main() int x,y,a,p=1; scanf("%d %d",&x,&y); if(x<y)a=x; x=y; y=a; if(x%y=0) printf("%dn", y); return; a=2; while(y>=a) if(x%a=0 && y%a=0) x=x/a; y=y/a; p*=a; e

48、lse a+; printf("%dn",p);答案:公约数36.#include<stdio.h>void main() int x=36,y=48,z; do z=x%y; x=y; y=z; while(y>0); printf("x=%dn",x);答案:x=1237.#include<stdio.h>void main() int x,i=0,s=0; scanf("%d",&x); do i+=2; s+=i*i;while(s<x); printf("n=%dn&qu

49、ot;,i-2);答案:最大38.#include<stdio.h>void main() int x=37,k=2; do if(x%k=0) break; k+; while(k*k<=x); if(k*k>x) printf("Yes!n"); else printf("No!n");答案:Yes!第四章 数组的概念自测练习一:数组的概念 自测练习1.在一个数组中,数组元素ai前面的元素个数为( )。a. 2*ib. i+1c. id. i-12.假定一维数组的定义为“char a8;”,则该数组所占用的存储空间的字节数为(

50、 )。a. 8b. 32c. 64d. 163.对于一维数组元素,数组名后使用一对中括号。()4.二维数组元素带有一个下标。(×)自测练习二:一维数组的定义和使用 自测练习1假定有一个定义语句为“int a10=3,4,2,8,6;”,则元素a3的值为( )。a. 6b. 8c. 4d. 22.在下面字符数组的定义语句中,有语法错误的是( )。a. char a="x+y=55." b. char a15='1','2' c. char a10='5'd. char a20="abcdefg"3.

51、在一维数组的定义语句中,可以给数组中每个元素赋初值。()4.假定一维数组的定义为“double aM;”,则每个数组元素的下标取值范围在1M之间。(×)自测练习三:二维数组的定义和使用 自测练习1.假定有一个定义语句为“int a34=3,4,2,8,6;”,则元素a21的值为( )。a. 8b. 6c. 4d. 02.假定二维数组的定义语句为“int* a35;”,则该数组所占用的存储空间的字节数为( )。a. 120b. 60c. 30d. 153.在二维数组的定义语句中,数组名后带有两对中括号。()4.假定二维数组的定义语句为“double aMN;”,则每个数组元素的列下标取

52、值范围在0N-1之间。()自测练习四:使用typedef语句定义数组类型 自测练习1.使用“typedef int Integer;”语句把标识符Integer定义为一个( )。a. 整数变量b. 整数类型c. 数组类型d. 数组变量2使用“typedef int ABC10;”语句把标识符ABC定义为( )。a. 符号常量 b. 字符数组c. 整型数组类型d. 简单变量3.执行“typedef int intType;”语句后,在使用int定义整型变量的地方都可以使用整数类型标识符intType来定义整型变量。()4.使用“typedef char BB1050;”语句定义标识符BB为含有1

53、0行50列共500个元素的二维字符数组。(×)自测练习五:数组的应用 自测练习1.执行下面程序的输出结果为#include<stdio.h>void main() int a8=3,8,6,5,9,2,8,5;int i,s=0;for(i=0;i<8;i+) s+=ai;printf("s=%dn",s);答案:s=462.执行下面程序的输出结果为#include<stdio.h>void main() int a8=12,15,20,8,25,30,28,36;int i,c3=0;for(i=0; i<8; i+) if(

54、ai%2=0) c0+;if(ai%3=0) c1+;if(ai%4=0) c2+;printf("%d %d %dn",c0,c1,c2);答案:6 4 53.执行下面程序的输出结果为#include<stdio.h>void main() int a33=13,18,16,15,19,12,8,15,22;int i,j,x=a00;for(i=0;i<3;i+)for(j=0;j<3;j+) if(aij<x) x=aij;printf("x=%dn",x);答案:x=84.执行下面程序的输出结果为#include<stdio.h>void main() int a33=12,18,10,8,6,14,5,10,19;int i,j,s3=0;for(i=0; i<3; i+) for(j=0; j<3; j+)saij%3+=aij;for(i=0

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论