[自考类试卷]全国自考(高级语言程序设计)模拟试卷7及答案与解析.doc

上传人:ownview251 文档编号:916426 上传时间:2019-02-28 格式:DOC 页数:15 大小:56KB
下载 相关 举报
[自考类试卷]全国自考(高级语言程序设计)模拟试卷7及答案与解析.doc_第1页
第1页 / 共15页
[自考类试卷]全国自考(高级语言程序设计)模拟试卷7及答案与解析.doc_第2页
第2页 / 共15页
[自考类试卷]全国自考(高级语言程序设计)模拟试卷7及答案与解析.doc_第3页
第3页 / 共15页
[自考类试卷]全国自考(高级语言程序设计)模拟试卷7及答案与解析.doc_第4页
第4页 / 共15页
[自考类试卷]全国自考(高级语言程序设计)模拟试卷7及答案与解析.doc_第5页
第5页 / 共15页
点击查看更多>>
资源描述

1、全国自考(高级语言程序设计)模拟试卷 7 及答案与解析一、单项选择题1 下列关于变量赋值及表达式计算时的数据类型转换规则描述正确的是( )(A)变量赋值时数据类型转换规则是就长不就短,表达式计算时数据类型转换规则是就左不就右(B)变量赋值时数据类型转换规则是就左不就右,表达式计算时数据类型转换规则是就长不就短(C)变量赋值及表达式计算时的数据类型转换规则是具有强制性而不自动的(D)变量赋值及表达式计算时的数据类型转换规则是具有强制性而自动的2 下列不属于 C 语言标识符的是( )(A)abc(B) ABC(C) AB_C(D)2abc3 设有数据定义语句:float a ,*pa= a ;,则

2、下列选项错误的是( )(A)*pa(B) *pa(C) *a(D)*a4 字符串“save me!“在内存中所占用的字节数是( )(A)4(B) 6(C) 8(D)95 下列程序执行后的输出结果是( ) main() int x=C;printf(“%dn“,A-x+3);)(A)1(B) 2(C) 3(D)56 系统提供的文件尾测试函数是( )(A)feof()(B) fgectc()(C) fseek()(D)rewind()7 将字符串转换成浮点数的函数是( )(A)atof()(B) atoi()(C) stof()(D)stoj()8 以下程序的输出结果是( ) #define f(

3、x)x*x main() int a=6,c; c=f(a) ; printf(“%dn“,c) ; )(A)6(B) 9(C) 18(D)369 已知程序清单如下( ) #includestdioh main() char c1,c2 ; scanf(“%c,%c“,c1,c2); switch(c1) case a:printf(“100“);break case b: switch(c2) case+:printf(“90“) ;break; case- :printf(“85“) ;)break break; 当输入“b,-“时,程序的输出结果是 (A)100(B) 90(C) 85(

4、D)不确定10 设 int 类型的数据长度为 2 个字节,则 unsigned int 类型的数据取值范围是( )(A)0255(B) -256255(C) 065535(D)-327683276711 设 charx=a,则 printf(“X=%c,y=%cn“,x,97);的输出是( )(A)x=a ,y=a(B) x=97,y=a(C) x=97,y=97(D)x=a ,y=9712 以下程序的输出结果是( ) int d=1 ; fun(int p) static int d=5; d+=P: printf(“%d“, d); return(d); main() int am=3;

5、printf(“%dn“,fun(a+fun(d): (A)6 9 9(B) 6 6 9(C) 6 15 15(D)6 6 1513 若有以下说明和语句( ) struct worker int no; char *name; work, *p=work; 则以下引用方式不正确的是(A)work no(B) (*p)no(C) p-no(D)work- no14 日期型结构 date 是由系统自动定义的,其所在的头文件是( )(A)stdio h(B) dosh ,(C) dateh (D)stdlibh15 执行下列程序后输出的结果是( ) #include stdio h main() i

6、nt j,i,k=0 ,m=0; for(i=0;i2;i+) for(j=0;j 3;j+) k+,k-=j; m=i+j; print(“k=%d,m=%dn“,k,m); (A)k=0,m=5(B) k=0,m=3(C) k=1,m=5(D)k=1,m=3二、填空题16 设 char strl7=“ABCDEF“,str25=“xyz“ ;则执行语句: printf(“%d“,strlen(strcpy(str1,str2); 后的输出是_。17 设 char a,b;,则表达式 a/c*b 的值的类型为_。18 设 for(k=0;k0;k-)+k ;,则该循环共执行_次。19 19,

7、表示空类型的保留字是_。20 在 C 语言中,如果下面的变量都是 int 类型,则输出的结果是_。 sum=pad=5; pad=sum+,pad+,+pad ; printf(“%dn“,pad) ;21 以下程序的输出结果是_。 #include main() int i=010,j=10 ; printf(“%d, %dn“,+i,j-) ;22 已知在 ASC代码中,字母 A 的序号为 65,以下程序输出的结果是_。 #includestdioh main() char c1=A,c2=Y; printf(“%d, %dn“,c1,c2) ; 23 指针 s 所指字符串的长度为_。 c

8、har *s=“NameAddressn“;24 以下程序运行后输出的结果是_。 main() int a=1,b; for(b=1;b=10 ;b+) (if(a =8)break; if(a%2=1)a+=5;continue; a-=3: printf(“%dn“,b); 25 写出“n 是小于整数 m 的偶数“ 的 C 语言表达式:_ 。三、程序分析题26 #include long fun(int n) long s; if(n=2)s=2; else s=n+fun(n-1); printf(“%dt“,s); return s; main() fun(5); printf(“n“

9、); 27 #includestdioh main() int a32=1,2,3,4 ,5,6),i,j,s=0; for(i=1;i 3;i+) for(j=0;j 2;j+) s+=aij; printf(“%dn“,s); 28 #includestdioh main() int i; for(i=0;i 3;i+) switch(i) case 0:printf(“%d“,i); case 2:printf(“%d“,i); default:printf(“%d“,i); printf(“n“); 29 #includestdioh main() int a,b; for(a=1,b

10、=1;a =100;a+) if(b=20)break; if(b%3=1)(b+=3; continue; b-=5; printf(“%dn“,a) ; 四、程序填充题30 以下程序求 a 数组中的所有素数的和,函数 isprime 用来判断自变量是否为素数。素数是只能被 1 和本身整除且大于 1 的自然数。 #includestdioh int isprime(int x) int i,r=1; for(i=2;i =x/2;i+) if(x%i=0)r=0;break; ) _;/*第一空*/ main() int i,a10,sum=0; printf(“Enter 10 nums:

11、n“); for(i=0;i 10;i+) scanf(“%d“,ai) ; for(i=0;i 10;i+) if(_)/*第二空*/(printf(“%d“,ai); _;/*第三空*/ printf(“nThe sum=%dn“,sum); 31 下面程序的功能是调用函数 fun 计算:m=1-2+3-4+9-10,并输出结果。 #includestdioh int fun(int n) intm=0,f=1,i; for(_;i-n;i+)/*第一空*/ m+=i*f; f=_;/*第二空*/ return m; main() printf(“m=%dn“,_) ;)/* 第三空*/3

12、2 下面程序的功能是:先从键盘上输入一个 3 行 3 列矩阵的各个元素的值,然后输出主对角线之和。 #includestdioh main() int a33, sum; int i,j; _;/*第一空*/ for(i=0;i 3;i+) for(_)/*第二空*/ scanf(“%d“,aij); for(i=0;i 3;i+) sum=_;/*第三空 */ printf(“sum=%dn“,sum); 五、程序设计题33 从键盘上输入若干个正整数,求其中最大数和最小数,输入的数以 0 为终止标记。34 用下列公式计算 的值:全国自考(高级语言程序设计)模拟试卷 7 答案与解析一、单项选择

13、题1 【正确答案】 B2 【正确答案】 D3 【正确答案】 D4 【正确答案】 D5 【正确答案】 A6 【正确答案】 A7 【正确答案】 A8 【正确答案】 D【试题解析】 #define f(x) x*x main() int a=6,b=2,c ;c=f(a)/f(b); /*将宏定义代入替换计算可求得结果*/ printf(“%dn“,c); 9 【正确答案】 C10 【正确答案】 C11 【正确答案】 A12 【正确答案】 C【试题解析】 int d=1; fun(int p) static int d=5;/*变量 d 被定义为 static 存储类型的 int 整型变量,作用域仪

14、限两数 fun(int p)内。函数 fun(int p)被执行之后变量 d 仍然存在,再次执行函数 fun(int p)时所使用的变量 d 的值是上次调用函数 fun(int p)时 d 所得到的新值。*/ d+=P; printf(“%d“,d);/*每次调用都会打印输出 d 的值*/ return(d);/*返回 d 的值*/ main() int a=3; printf(“%dn“,fun(a+fun(d);/*此处调用函数 fun(int p)时,所用的变量 d 为整个程序段头所定义的 d*/ 13 【正确答案】 D14 【正确答案】 B15 【正确答案】 A【试题解析】 #incl

15、ude stdioh main() int j,i,k=0,m=0; for(i=0;i 2;i+)/*循环条件是“i2“,步进值为 1*/ for(j=0;j 3;j+)/*循环条件是“j3“,步进值为 1*/ k+,k-=j ; /*此语句为逗号表达式,表达式“k+“和“k-=j“在循环“for(j=0;j 3;j+)“中都会被执行*/ m=i+j:/* 此处所使用的 i 和 j 的值都是在上述循环执行后 i 和 j 的值*/ printf(“k=%d,m=%dn“,k,m); 二、填空题16 【正确答案】 3【试题解析】 strcpy()是将字符串 str2 复制到 str1 中,且 s

16、tr1 中原有的字符将被覆盖。17 【正确答案】 整型18 【正确答案】 0【试题解析】 k 的初始值已经不能满足循环执行的条件了,故该循环体共执行了0 次。19 【正确答案】 void20 【正确答案】 721 【正确答案】 9,1022 【正确答案】 65,8923 【正确答案】 1424 【正确答案】 4【试题解析】 main() int a=1,b; for(b=1;b=10 ;b+),/*b 从 1 到 10,步进位为 1 的循环*/ if(a=8)break;/*当 a=8 时循环被终止*/ if(a%2=1)a+=5;continue;/*如 a 为奇数,则执行 “a+=5;co

17、ntinue;“*/ a-=3;/*如果上述两条件 a 都不满足则执行本行*/ printf(“%dn“,b); 25 【正确答案】 !(n%2) nm三、程序分析题26 【正确答案】 25914【试题解析】 #include stdioh long fun(int n)(long s; if(n=2)s=2 ;/*程序存 n2 时是出口条件,不再递归,否则一直执行 s=5+f(n-1)的操作*/ else s=n+fun(n-1): printf(“%dt“,s); return s; main() fun(5); printf(“n“); 27 【正确答案】 18【试题解析】 #inclu

18、de stdioh main() int a32=1,2,3,4,5 ,6,i,j,s=0; for(i=1;i 3;i+) for(j=0;j 2;j+) s+=aij;/*构建一个二重循环,对除第一行之外的所有数组元素求和 */ printf(“%dn“,s); 28 【正确答案】 122【试题解析】 #include stdioh main() int i; for(i0;i3;i+)/* 循环体被执行 3 次*/ switch(i) cflse 0:printf(“%d“,i); case 2:printf(“%d“, i): default:printf(“%d“,i);/*不含 b

19、reak 语句,从符合条件的 case 语句开始。所有的 case 语句行都会被执行 */ printf(“n“); 29 【正确答案】 8【试题解析】 #include stdioh main() int a,b; for=(a=1,b=1 ,a=100;a+)if(b=20)break;/*如果 b20 则终止循环*/ if(b%3=1) b+=3; conlinue; /*如果 b%3=1 成证则继续执行下一次循环*/ b-=5: printf(“%an“,a) ; 四、程序填充题30 【正确答案】 return r/*第一空。函数 isprime()是用来判断给定的一个数是否是素数,进

20、行判断之后应当给予主调函数一个回应,即返回值。*/ isprime(ai)=1/*第二空。调用函数 isprime()判断数组元素是否为素数。 */ sum+=ai/*第三空。对被判断为素数的数组元素进行求和运算。*/31 【正确答案】 i=1/* 第一空。公式“m=1-2+3-4+9-10“中第一项的值为 1,故 i的初值应为 1。*/ f*(-1)/*第二空。公式的规律是;所有的偶数项都为负值。*/ fun(10)/*第三空。公式的最大项为 10,故调用函数 fun()时参数传递的数值应为10。*/32 【正确答案】 sum=0/*第一空。对和变量 sum 进行初始化。*/ j=0; j3

21、; j+/*第二空。对数组元素的初始化过程,定义列宽度。*/ sum+aii/*第三空。对对角线数组元素进行求和。 */五、程序设计题33 【正确答案】 #includestdioh main() int x,max=0,min=0 ; scanf(“%d“, x); while(x) /*此处的判定条件见为需要,当输入“0“时断开循环 */ if(xmin)min=x; if(xmax)max=x; sanf(“%d“,x); /*此处是在循环体内的输入语句,是对整个循环的支撑 */ printt(“%d,%dn“,max,min); 34 【正确答案】 #includestdioh #inchldemathh main() float pi=0.0 n=1.0,s=1.0,t; dot=s/n; pi+=t; s*=(-1.0) ; /* 以上三条语句的顺序相当重要,也是整个程序的核心*/ n+=2: while(fabs(t)=le-4) ; /* 此处以确定所得到的值是否满足 的精度要求*/ printf(“pi=%fn“,4*pi) ;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试资料 > 大学考试

copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1