中南大学年《C语言程序设计》期末考试试题及答案_第1页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

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

文档简介

1、单项选择题1.若有以下数组说明,则i=10;aai元素数值是(C )。int a12=1,4,7,10,2,5,8,11,3,6,9,12;A.10 B.9 C.6 D.5先算aai内层的ai,由于i=10,因此ai即a10. a10对应下面数组中的元素为9. 因此aai即为a9a9对应下面数组中的元素为6. 因此a9即为62.若有说明:int a3=1,2,3,4,5,6,7; 则数组a的第一维的大小为: ( B ) A. 2 B. 3 C. 4 D.无确定值5 7 D) 3 6 9二维数组的一维大小,即指二维数组的行数,在本题中,按行对二维数组赋值,因此内层有几个大括号,数组就有几行3.对

2、二维数组的正确定义是( C )详见教材P149152,二维数组的定义、初始化类型符 数组名 常量表达式常量表达式二维数组可以看做是矩阵类型符是指数组中数组元素的类型;数组名要符合标识符命名规则;第一个常量表达式是指数组的行数;第二个常量表达式是指数组的列数;常量表达式的值只能是整数,不可以是变量,而且从1开始计数。一维数组初始化时可以省略数组长度二维数组初始化时可以省略行数,但不能省略列数选项A,B,都省略了列数选项D,不符合二维数组定义的一般形式,行、列常量表达式应该放在不同的中 A.int a =1,2,3,4,5,6; B.int a2 =1,2,3,4,5,6;C.int a 3=1,

3、2,3,4,5,6; D.int a2,3=1,2,3,4,5,6;4已知int a34;则对数组元素引用正确的是_C_ A)a24 B)a1,3 C)a20 D)a(2)(1) 详见教材P150,数组元素的引用数组名下标 下标引用数组元素时, 中的下标为逻辑地址下标,只能为整数,可以为变量,且从0开始计数第一个下标表示行逻辑地址下标,第二个下标表示列逻辑地址下标。本题图示详见P149图6.7因此a的行逻辑地址范围02;a的列逻辑地址范围03;选项A,列逻辑地址下标超过范围选项B,D,的引用形式不正确。5.C语言中函数返回值的类型是由 A 决定的. A)函数定义时指定的类型 B) return

4、语句中的表达式类型 C) 调用该函数时的实参的数据类型 D) 形参的数据类型6. 在C语言中,函数的数据类型是指( A )A 函数返回值的数据类型 B. 函数形参的数据类型C 调用该函数时的实参的数据类型 D.任意指定的数据类型7. 在函数调用时,以下说法正确的是( B ) A.函数调用后必须带回返回值 B.实际参数和形式参数可以同名 C.函数间的数据传递不可以使用全局变量 D.主调函数和被调函数总是在同一个文件里8. 在C语言中,表示静态存储类别的关键字是: ( C )A) auto B) register C) static D) extern9未指定存储类别的变量,其隐含的存储类别为(

5、A )。 A)auto B)static C)extern D)register 10. 若有以下说明语句: struct student int num; char name ; float score; stu; 则下面的叙述不正确的是: ( D )A. struct是结构体类型的关键字 B. struct student 是用户定义的结构体类型C. num, score都是结构体成员名 D. stu是用户定义的结构体类型名读程序数组1.#include main() int i, a10;for(i=9;i=0;i-) ai=10-i;printf(“%d%d%d”,a2,a5,a8);

6、运行结果为:852详见p143-146. 例题6.1一定看懂!首先定义整型变量i,整型数组a, a的长度为10,即a中包含10个整型元素(整型变量)执行for循环语句初值i=9, 使得循环条件i=0成立,执行循环体第1次循环执行ai=10-i 等价于a9=10-9=1计算表达式3,即i-,i为8,使得循环条件i=0成立,继续执行循环体第2次循环执行ai=10-i 等价于a8=10-8=2计算表达式3,即i-,i为7,使得循环条件i=0成立,继续执行循环体第3次循环执行ai=10-i 等价于a7=10-7=3计算表达式3,即i-,i为6,使得循环条件i=0成立,继续执行循环体第4次循环执行ai=

7、10-i 等价于a6=10-6=4计算表达式3,即i-,i为5,使得循环条件i=0成立,继续执行循环体第5次循环执行ai=10-i 等价于a5=10-5=5计算表达式3,即i-,i为4,使得循环条件i=0成立,继续执行循环体第6次循环执行ai=10-i 等价于a4=10-4=6计算表达式3,即i-,i为3,使得循环条件i=0成立,继续执行循环体第7次循环执行ai=10-i 等价于a3=10-3=7计算表达式3,即i-,i为2,使得循环条件i=0成立,继续执行循环体第8次循环执行ai=10-i 等价于a2=10-2=8计算表达式3,即i-,i为1,使得循环条件i=0成立,继续执行循环体第9次循环

8、执行ai=10-i 等价于a1=10-1=9计算表达式3,即i-,i为0,使得循环条件i=0成立,继续执行循环体第10次循环执行ai=10-i 等价于a0=10-0=10计算表达式3,即i-,i为-1,使得循环条件i=0不成立,跳出循环体2. #include main() int i,a6; for (i=0; i=0 ; i-) printf(%3d,ai); 运行结果为:5 4 3 2 1 0首先定义整型变量i,整型数组a, a的长度为6,即a中包含6个整型元素(整型变量)执行第一个for循环语句初值i=0, 使得循环条件i6成立,执行循环体第1次循环执行ai= i 等价于a0=0计算表

9、达式3,即i+,i为1,使得循环条件i6成立,继续执行循环体第2次循环执行ai= i 等价于a1=1计算表达式3,即i+,i为2,使得循环条件i6成立,继续执行循环体第3次循环执行ai= i 等价于a2=2计算表达式3,即i+,i为3,使得循环条件i6成立,继续执行循环体第4次循环执行ai= i 等价于a3=3计算表达式3,即i+,i为4,使得循环条件i6成立,继续执行循环体第5次循环执行ai= i 等价于a4=4计算表达式3,即i+,i为5,使得循环条件i6成立,继续执行循环体第6次循环执行ai= i 等价于a5=5计算表达式3,即i+,i为6,使得循环条件i=0成立,执行循环体第1次循环执

10、行printf(%3d,ai); 即输出a5的值计算表达式3,即i-,i为4,使得循环条件i=0成立,继续执行循环体第2次循环执行printf(%3d,ai); 即输出a4的值计算表达式3,即i-,i为3,使得循环条件i=0成立,继续执行循环体第3次循环执行printf(%3d,ai); 即输出a3的值计算表达式3,即i-,i为2,使得循环条件i=0成立,继续执行循环体第4次循环执行printf(%3d,ai); 即输出a2的值计算表达式3,即i-,i为1,使得循环条件i=0成立,继续执行循环体第5次循环执行printf(%3d,ai); 即输出a1的值计算表达式3,即i-,i为0,使得循环条

11、件i=0成立,继续执行循环体第6次循环执行printf(%3d,ai); 即输出a0的值计算表达式3,即i-,i为6,使得循环条件i=0不成立,结束循环3. #include main( ) int i,k,a10,p3;k=5;for(i=0;i10;i+)ai=i;for(i=0;i3;i+)pi=ai*(i+1);for(i=0;i3;i+)k+=pi*2;printf(%dn,k);运行结果为:21首先定义整型变量i,k,整型数组a, a的长度为10,整型数组p, p的长度为3k初值为5第一个for循环语句为数组a进行初始化执行完第一个for语句后,a0=0,a1=1,a2=2,a3=

12、3,a4=4,a5=5,a6=6,a7=7,a8=8,a9=9 (循环过程略)第二个for循环语句为数组p进行初始化初值i=0, 使得循环条件i3成立,执行循环体第1次循环执行pi=ai*(i+1); 即p0=a0*(0+1)=a0=0计算表达式3,即i+,i为1,使得循环条件i3成立,继续执行循环体第2次循环执行pi=ai*(i+1); 即p1=a1*(1+1)=a2=2计算表达式3,即i+,i为2,使得循环条件i3成立,继续执行循环体第3次循环执行pi=ai*(i+1); 即p2=a2*(2+1)=a6=6计算表达式3,即i+,i为3,使得循环条件i3不成立,结束循环第三个for循环语句初

13、值i=0, 使得循环条件i3成立,执行循环体第1次循环执行k+=pi*2; 即k=5+p0*2=5+0=5计算表达式3,即i+,i为1,使得循环条件i3成立,继续执行循环体第2次循环执行k+=pi*2; 即k=5+p1*2=5+2*2=9计算表达式3,即i+,i为2,使得循环条件i3成立,继续执行循环体第1次循环执行k+=pi*2; 即k=9+p2*2=9+6*2=21计算表达式3,即i+,i为3,使得循环条件i3不成立,结束循环4.#include int m33=1,2,3;int n33=1,2 ,3;main( ) printf(“%d,”, m10+n00); printf(“%dn

14、”,m01+n10);运行结果为:3,0详见教材P149152,图6.7看懂!首先定义整型二维数组m,m为3行,3列的二维矩阵,并对其以行的形式初始化m00=1 m01=0 m12=0m10=2 m11=0 m22=0m20=3 m21=0 m22=0定义整型二维数组n,m为3行,3列的二维矩阵n00=1 n01=2 n12=3n10=0 n11=0 n22=0n20=0 n21=0 n22=0因此m10+n00=2+1=3m01+n10=0+0=05.#include main() int i;int x33=1,2,3,4,5,6,7,8,9; for (i=1; i3; i+)print

15、f(%d ,xi3-i); 运行结果为:6 8 首先按存储顺序为数组x初始化x00=1 x01=2 x02=3x10=4 x11=5 x12=6x20=7 x21=8 x22=9初值i=1, 使得循环条件i3成立,执行循环体第1次循环执行printf(%d ,xi3-i),打印出xi3-i,即x12的值计算表达式3,即i+,i为2,使得循环条件i3成立,继续执行循环体第2次循环执行printf(%d ,xi3-i),打印出xi3-i,即x21的值计算表达式3,即i+,i为3,使得循环条件i3成立,结束循环 6.#include main( ) int n33, i, j;for(i=0;i3;

16、i+ )for(j=0;j3;j+ )nij=i+j;printf(“%d ”, nij);运行结果为:0 1 21 2 32 3 4循环变量i为0, 循环条件 i3成立,执行循环体外层for第1次循环 相当于输出第1行内层for循环j初值为0,循环条件j3成立,执行循环体内层for第1次循环执行nij=i+j;即n00=0+0=0;执行printf(“%d ”, nij);执行内层循环表达式3,j+,j为1,j3成立,继续执行内层循环体内层for第2次循环执行nij=i+j;即n01=0+1=1;执行printf(“%d ”, nij);执行内层循环表达式3,j+,j为2,j3成立,继续执行

17、内层循环体内层for第3次循环执行nij=i+j;即n02=0+2=2;执行printf(“%d ”, nij);执行内层循环表达式3,j+,j为3,j3不成立,结束内层循环执行printf(“n”);执行外层for语句的表达式3,i+,i为,1, i3成立,继续执行外层循环体外层for第2次循环 相当于输出第2行内层for循环j初值为0,循环条件j3成立,执行循环体内层for第1次循环执行nij=i+j;即n10=1+0=1;执行printf(“%d ”, nij);执行内层循环表达式3,j+,j为1,j3成立,继续执行内层循环体内层for第2次循环执行nij=i+j;即n11=1+1=2;

18、执行printf(“%d ”, nij);执行内层循环表达式3,j+,j为2,j3成立,继续执行内层循环体内层for第3次循环执行nij=i+j;即n12=1+2=3;执行printf(“%d ”, nij);执行内层循环表达式3,j+,j为3,j3不成立,结束内层循环执行printf(“n”);执行外层for语句的表达式3,i+,i为,1, i3成立,继续执行外层循环体外层for第2次循环 相当于输出第3行内层for循环j初值为0,循环条件j3成立,执行循环体内层for第1次循环执行nij=i+j;即n20=2+0=1;执行printf(“%d ”, nij);执行内层循环表达式3,j+,j

19、为1,j3成立,继续执行内层循环体内层for第2次循环执行nij=i+j;即n21=2+1=2;执行printf(“%d ”, nij);执行内层循环表达式3,j+,j为2,j3成立,继续执行内层循环体内层for第3次循环执行nij=i+j;即n22=2+2=3;执行内层循环表达式3,j+,j为3,j3不成立,结束内层循环执行printf(“n”);执行外层for语句的表达式3,i+,i为,3, i3不成立,结束外层循环7#include main()char diamond5=_,_,*,_,*,_,*,*,_,_,_,*,_,*,_,*,_,_,*;int i,j;for(i=0;i5;i+)for(j=0;j5;j+)printf(“%c”,diamondij);printf(“n”);注:“_”代表一个空格。运行结果为:* * * * *8. #include main( ) int i, f10; f0=f1=1; for(i=2;i10;i+) fi=fi-2+fi-1; for(i=0;i10;i+) if(i%4=0) printf(“n”); printf(“%d ”,fi); 运行结果为:1 1 2 35 8 13 2134 559 #include “stdio.h” func(int b ) int j; for(j=0;j4;j+) bj

温馨提示

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

评论

0/150

提交评论