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

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

1、全国自考(高级语言程序设计)模拟试卷 10 及答案与解析一、单项选择题1 下列不属于面向机器语言的是( )(A)符号语言(B)二进制语言(C)汇编语言(D)C 语言2 设 int b=2;表达式 (b2)/(b 1)的值是( )(A)2(B) 4(C) 6(D)83 设置变量定义为:int a=0x53;int b=6;,求表达式ab 的值(假定现有计算机字长为 16)( )(A)82(B) -82(C) 72(D)-724 为了判定两个字符串是否相等应当使用( )(A)if(s1=s2)(B) if(s1=s2)(C) if(strcmp(s1,s2)=0)(D)if(strcmp(s1,s

2、2)=0)5 设 char c5=a,b ,0,C ,0);则 printf(“%s“,c) ;的输出是( )(A)ab(B) ab(C) abc(D)ab0c6 以下程序的运行结果是( ) #include stdioh main() int a=1,2,3,4,5,6,7, 8,9,10,11,12 ; int *p=a5,*q=NULL; printf(“%d%dn“,*p,*q); (A)运行后报错(B) 6 0(C) 6 12(D)5 57 当执行以下程序段时( ) doy-;while(-y) printf(“%dn“,y-);(A)循环体将执行一次(B)循环体将执行两次(C)循环

3、体将执行无限次(D)系统将提示有语法错误8 设 char str100;int I=5 ;,则引用数组元素的错误形式的是 ( )(A)strI+10(B) *(srr+I)(C) (str+I-1)(D)*( (str+)+I)9 下列表达式的值为 0 的是( )(A)3%5(B) 3*5(C) 3/5.0(D)3510 字符串“2008 Olympic“在存储单元中所占用的字节数是 ( )(A)9(B) 10(C) 11(D)1311 设 a=5,b=3;,执行语句“printf(“%d,%d,(a,b),(b,a);“输出是( )(A)5,3(B) 3,5(C) 5,5(D)3,312 执

4、行下列程序段后,*p 的值是( ) char *p=“asdf“; printf(“%c“,*(p+strlen(p);(A)语句错误(B) s(C) d(D)a13 下列关于函数的说法不正确的是( )(A)函数是一个可反复使用的程序段(B) main()函数也可以做被调函数(C)函数参数的输入和输出统称为“函数问数据的传递 “(D)从定义的角度来分,可分为用户函数和系统函数两类14 通常适用于从被调用函数中将一个值传回主调函数的参数传递方式是( )(A)利用返回值数据传递方式(B)利用形参与实参传递数据的方式(C)利用全局变量传递数据的方式(D)以上都不对15 下列关于文件随机定位函数 fs

5、eek()的描述正确的是( )(A)若定位正确返回非零值(B)包含在头文件 stdlibh 中(C)本函数只能用于二进制文件(D)本函数可以使用文件内部指针直接指向需要的某个数据二、填空题16 高级语言编写的程序被称为_,它是不能在计算机上直接运行的,必须将其翻译成二进制程序后才能执行。17 位运算的对象只能是_。18 下面程序的输出结果是_。 #includestdio. h main() static char b=“Hello!world!“; char *chp= b6; while(-chp=b0)putchar(*chp); putchar(n); 19 请写出以下数学表达式的 C

6、 语言表达式:_。20 下列程序语句执行后的结果是_。 main() int x=f;printf(“%cn“,A+(x-a+1);21 表示条件“10x100 或 x0“ 的 c 语言表达式是_。22 若已知 a=10、b=20,则表达式!ab 的值为_ 。23 没 int b=2;表达式(b2)/(b 1)的值是_。24 下列语句执行后输出的结果是_。 main() double d=3.2;int x,y; x=1.2;y=(x+3.8)/5.0; printf(“%dn“,d*y); 25 如果形参是数组名,则传递方式称为“_“。三、程序分析题26 #includestdioh mai

7、n() int a43=1,5,9, 12,8,17,13,6,10,24,22,23,i ,s=1 ; for(i=2;i 2=3;i+) s=s+ai3-i; printf(“s=%dn“,s); 27 #includestdioh main() int i,j,row,colum,m; static int arry33=100,200,300,28 ,27,29,850,26,5) ; m=arry00; for(i=0;i 3;i+) for(j=0;j 3;j+) if(arryijm) m=arryij;row=i;colum=j; printf(“%d, %d,%dn“,m,r

8、ow,colum) ; 28 #includestdioh main() char b=“CDEFGH“; char *chp= b3; while(-chpb0); putchar(*chp): printf(“n“): 29 #ineludestdioh sub(x,y,z) int x,y,*z; *z=y-x; main() int a,b,C ; sub(10,5,a); sub(7,a, b); sub(a,b, c); printf(“%d, %d,%dn“,a,b,c) ; 四、程序填充题30 下面程序由终端键盘输入一个文件名。然后把从终端键盘输入的字符依次存放到该文件中,用#

9、作为结束输入的标志。 #includestdioh #include main() FILE *fp; char ch,fname10; printf(“Please input the file namen“); gets(fname); if(fp=_)=NULL)/*第一空*/ printf(“()pen it errorn“);_;/* 第二空*/ else(printf(“Enter the contentn“); while(ch=getchar()!=#) _;/*第三空*/ fclose(fp); 31 下面 rotate 函数的功能是:将 n 行 n 列的矩阵 A 转置为 A

10、。 #define N 4 void rotate(int aN) int i,j,t; for(i=0;i N;I+) for(j=0;_;j+)/*第一空*/ t=aij; _;/*第二空*/ aji=_;/*第三空*/ 32 输入 2 个整数,输出它们的最小公倍数和最大公约数。 #includestdioh void main() int m,n,gbs,gys; scanf(“%d,9/6d“,m,n); gbs=m; while(_)/*第一空*/ gbs=_;/*第二空*/ gys=_;/*第三空*/ printf(“%d %dn“,gbs,gys); 五、程序设计题33 输出 1

11、00 以内所有个位数字为 7 且能被 3 整除的数。34 一个二维数组 int a44,请将其填满并输出其四个边的元素。全国自考(高级语言程序设计)模拟试卷 10 答案与解析一、单项选择题1 【正确答案】 D2 【正确答案】 D【试题解析】 左移位运算移一位相当于乘 2,右移位运算右移一位相当于除 2。3 【正确答案】 B【试题解析】 因计算机字长为 16故 a 的二制表示是 0000000001010011,b 的二进制表示是 0000000000000110。运算符“自右向左结合,运算符“ 是自左向右结合;且运算符“的优先级高于运算符“ “ 的优先级,则进行计算的顺序是“(a)b“。最终计

12、算结果是 1111111101010010(十进制值为-82)。4 【正确答案】 C5 【正确答案】 B6 【正确答案】 A【试题解析】 #include stdioh main() int a=1,234,5,6,7,8,9,10,11,12; int*p=a5 ,*q=NULL; printf(“%d%dn“,*P,*q);/*被置空的指针不能参与“*“运算*/ 7 【正确答案】 C【试题解析】 变量 y 无初值,系统默认非空。循环将无限次地被执行下去。8 【正确答案】 D9 【正确答案】 D【试题解析】 35 不为真,故表达式的值为 0。10 【正确答案】 D11 【正确答案】 B12

13、【正确答案】 D【试题解析】 指针变量 P 在得到初值“asdf“之后没有初改变过, P 就是字符串“asdf“的首地址故*P 的值为 a。13 【正确答案】 B14 【正确答案】 A15 【正确答案】 D二、填空题16 【正确答案】 源程序17 【正确答案】 整型数据18 【正确答案】 !olleH【试题解析】 b6所表示的位置是“w“的位置;“while(-chp=b0)putchar(*chp);“中由于“-“是前置的,所以在执行判定前指针“chp“ 先行自减 1。循环体“while(-chp= b0)putchar(*chp);“结束的条件是“chpb0“,循环过程中输出相应字符。19

14、 【正确答案】 a/(b*c)-2*d20 【正确答案】 G【试题解析】 x=f则f-a=5,A+5+1=G。对一下 ASC码表就行了。21 【正确答案】 x10x100x022 【正确答案】 123 【正确答案】 0【试题解析】 因 b=2,其二进制表达式为。0000010(若计算机为八位机)。右移两化后其值为 00000000(右移时高位补 0;其十进制值为 0),最终得出表达式的值为0。24 【正确答案】 0【试题解析】 因定义的变量 x 和 y 都是 int 型,故在执行语句“x=1.2;“时 x 获得的值是 1;在执行语句“y=(x+3.8)/5.0;“时,x 以所获得的值“1“参加

15、运算,最终“(x+3.8)/5.0“的值小于 1。故 y 所获得的值为 0。25 【正确答案】 地址传递方式三、程序分析题26 【正确答案】 s=31【试题解析】 #include stdioh main() int a43=1,5,9,12 ,8,17,13,6,10,24 ,22,23,i,s=1; for(i=2;i=3;i+)/*i*i 初值为 2,循环条什为 i=3,步进值为 1*/ s=s+ai3-i;/*循环体内将“s+ai3-i“的值赋于 s*/ printf(“s=%dn“,s);/* 打印输出上述循环体执行完毕后 s 的值*/ 27 【正确答案】 5,2,2【试题解析】 #

16、include stdioh main() int ij,row,columm; static int arry 33=100,200,300),28 ,27,29,850,26,5; m=arry00; for(i=0:i3 ;i+) for(j=0;j %3;j+) if(arryijm) m=arryij;row=i;colum=j;/* 遍历数组 arry,以找出其他最小的元素,并记录位置*/ primf(“%d, %d,%dn“,m,row,colum);/*输出最小元素的值,并打印其位置标记*/28 【正确答案】 E【试题解析】 #include stdioh main() cha

17、r b=CDEFGH; char *chp=b3 /*指针变醚 chp 获得初值b0*/ while(-chpb0) ;/*指针变量 chp 的值小于字符数组 b元素 b0的地址时执行循环,循环体为空语句,每循环一次指针变量 chp 减 1*/ putchar(*chp);/*打印输出指针变量 chp 所指向内存存放的字符*/ printf(“n“); 29 【正确答案】 -5-12,-7【试题解析】 #include stdioh sub(x,y,z) int x, y,*z;/*只有参数 z 为指针变量,与主函数数之间的参数传递采用地地址传方式。函数 sub()可通过这个变量改变和 z 相

18、关的本函数外部变量的值*/ *z=y-x;) main() int a, b,c; sub(10.5,a); sub(7,a,b); sub(a,b,c); print(“%d,%d ,%dn“,a,b,c); 四、程序填充题30 【正确答案】 fopen(fname,“w“)/*第一空。新建一个名字由字符数组 fname 的元素组成的文件,采用的方式是只读方式*/ exit(0)/*第二空。关闭当前打开的文件结束程序运行*/ fputc(ch,fp)/*第三空。将字符型变量 ch 的值输出到文件指针 fp 指向的文件中*/31 【正确答案】 jN/*第一空。题干提示为 n 行 n 列的矩阵转

19、置,故此处应填入循环条件*/ aij=aji/*第二空。矩阵转置,元素换位 */ t/*第三空。将临时变量内储存的值转入矩阵元素 aji中*/32 【正确答案】 gbs%n!=0/*第一空。确定循环终止的条件,当 gbs%n=0 时循环终止*/ gbs+m/*第二空。循环体执行语句,继续累加 m 到 gbs 中*/ m*n/gbs/*第三空。求出 m 和 n 的最大公约数*/五、程序设计题33 【正确答案】 #includestdioh main() int i,a; for(i-0;i10;i+) a=i*10+7;/*求个位为 7 的数*/ if(a%3=0)printf(“%dn“,a);/*判断其是否能被 3 整除*/ 34 【正确答案】 #includestdioh main() int a44; int i,j; for(i=0;i 4;i+) for(j=0;j 4;j+) scanf(“%d,aij); for(i=0;i 4;i+) for(j=0;j 4;j+) if(i=0)|(i=3)printf(“%d“,aij);/*如果是第一行或第四行则输出该元素*/ else if(j=0)|(j=3)printf(“%d“,aij) ;/* 如果是第一列或第四列则输出该元素*/

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

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

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