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

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

1、全国自考(高级语言程序设计)模拟试卷 1 及答案与解析一、单项选择题1 下列语言中不属于面向过程的语言是( )(A)B 语言(B) C 语言(C)汇编语言(D)ALGOL 语言2 下列选项中不是转义字符的是( )(A)(B) 0(C) t(D)O743 在 C 语言中,c和“c“存储所占用的字节数分别是( )(A)1,1(B) 1,2(C) 2,1(D)2,24 下列程序段运行后,x 的值是( ) int a=1,b=0,x=1; if(!(-a)x-; if(b)x=7;else+x;(A)0(B) 1(C) 7(D)85 下列关于 do-while 语句的描述错误的是( )(A)可构成多重

2、循环结构(B)循环次数不可能为 0(C)循环次数可能为 0(D)先执行后判断6 调用函数时,若实参是一个数组名,则向函数对应的形参传送的是( )(A)数据的长度(B)数组的首地址(C)数组的第一个元素的值(D)整个数据元素的值7 在位移位运算中,操作数左移一位,其结果相当于操作数( )(A)乘以 2(B)除以 2(C)乘以 4(D)除以 48 若有以下宏定义: #define N 2 #define Y(n) (n+1)*N) 则执行语句z=8*N+Y(1);后 z 的值为( )(A)20(B) 16(C) 14(D)不确定9 若有以下语句: int x=1,3,5,10,12; int *

3、ptr=x; 则数据组元素“10”的地址是( )(A)x+3(B) (x+3)(C) ptr(D)ptr+1010 函数调用“strcpy(str3 , strcat(str1,str2)”的功能是( )(A)将字符串 str1 复制到字符串 str2 中,再连接到字符串 str3 后(B)将字符串 str1 连接到字符串 str2 后,再复制到 str3 中(C)将字符串 str2 连接到 str1 后,再复制到 str3 中(D)将字符串 str2 复制到 str1 中,再连接到 str3 后11 执行语句“char a10=“abcd“) ,* p=a;”后,*(p+2)的值是( )(A

4、)abcd(B) b(C) C(D)012 定义函数时,下列选项中可以作为函数存储类型的是( )(A)register(B) auto(C) extern(D)void13 若 a、b 为 int 型变量,则执行以下语句后 a 的值为( ) a=1;b=10; dob-=a; a+;)while(b- 0);(A)1(B) 3(C) 4(D)514 若 x、y、z 、m 、n 均为 int 型变量,则执行下面语句后 z 的值为( ) m=10; n=5; x=(-m=n+)?-m:+n; y=m+ ; z=n;(A)5(B) 6(C) 7(D)1015 关于函数 fseek(a,b, c)的说

5、法错误的是( )(A)参数 a 是文件型指针,指向所需要的文件(B)参数 b 是 int 型,表示从开始位置的偏移字节数(C)参数 c 是 int 型,表示定位的起始位置(D)函数返回值是 int 型,定位正确返回 0;定位错误返回非 0二、填空题16 设 int a=2,b=4,c=1,d;执行 d=!(a-b+c);后 d 的值是_。17 若有定义 int a34=1,2,3,4,5,6,7, 8;,则 a13=_。18 以下程序运行后的输出结果是_。 main() int x=1,y=0,a=0,b=0; switch(x) case 1:switch(y) case 0:a+;brea

6、k; case 1:b+;break; case 2:a+;b+ ;break; printf(“%d%dn“,a ,b); 19 若有语句:int i=-19, j=i%4;printf(“%dn“ ,j);则输出结果是_。20 C 语言中,输入和输出操作是由头函数_完成的。21 设 i,j,k 均为整型变量,则执行完“for(i=0,j=10;i=j;i+,j-)k=i+j ;“ 之后,k 的值是_。22 若有数组 char a5=97,99,107,0 ,108),(az 的 ASC值是 97122) 则执行语句 puts(a)的结果是 _。23 移位运算被执行后,原对象中的数据_。24

7、 设 char string=“this_is_a_book!“;,则数组的长度应是_。25 C 语言中 fputc()函数对文本文件的存取是以 _为单位的。三、程序分析题26 #inclucdestdioh void prly(int*x) prinlf(“%dn“,+*x); main() int a=25; prty(a): printf(“%dn“,a) : 27 #includestdioh int ast(int x,int y,int *cp,int*dp) *cp=x+y;*dp=x-y; main() int a,b,c,d; a=4;b=3; ast(a,b,C,d); p

8、rintf(“%d, %dn“,c,d); 28 #includestdioh #include%stringh main() char p110=“abc“,p210=“ABC“,str50=“xyz“: strcpy(str+2,strcat(p1 , p2): printf(“%sn“,str) ; 29 #includestdioh #includestringh main() int y=9; for(;y0;y-) if(y%03=0) printf(“%d“,-y);continue; printf(“%d“,-y); 四、程序填充题30 将一个十进制整数转变成一个二进制整数。

9、#includestdioh main() int i=0j,n,num20; scanf(“%d“,_);/*第一空*/ while(n!=0) numi+=_;/*第二空*/ n=_; )/*第三空*/ for(j=i-1;j=0 ;j-) printf(“Ha“,numj); printf(“n“); 31 以下程序用来统计从终端输入的字符中大写字母的个数。以“$“作为输入结束标记。 #includestdioh #includectypch main() int num126,i;char c; for(i=0;i 26;i+) numi=0; while(_)!=$)/*第一空 */

10、 if(isupper(c)numc-65+=1; for(i=0;i 26;i+) if(_)/*第二空*/ printf(“%c:%dn“,_,numi);/*第三空*/ 32 输入 5 个字符,从中找出最大的并输出。要求用字符数组存放此字符,并用指针数组元素分别指向这 5 个字符。 #includestdioh main() char a5,*p5,*max; int I; for(I=0;I 5;I+) _;/*第一空*/ for(I=0;I 5;I+) scanf(“%C“,pI); max=p0; for(I=0;_;I+)/*第二空*/ if(*max*pI) _;/*第三空*/

11、 printf(“%c“,*max); 五、程序设计题33 输入一个整数 n(n10),如果 n=3,则输出 1 222 33333 222 1 以此类推。34 把文本文件 xdat 复制到文本文件 xdat 中,要求仅复制 xdat 中的非空格字符。全国自考(高级语言程序设计)模拟试卷 1 答案与解析一、单项选择题1 【正确答案】 C2 【正确答案】 D3 【正确答案】 B4 【正确答案】 B【试题解析】 本题主要考查考生对单目运算符“-“和“+“的掌握。这两个单目运算符如果是前缀则先减或加 1,后使用对象;如果是后缀则先使用对象,后减或加1。只要使用了这两个运算符,变量最终的值一定是进行减

12、或加 1 运算后的值。 int a=1,b=0,x=1 ;/*此处定义并给 a、b、c 三个整型变量赋值*/ if(!(-a)x-;/*如果 a 进行减 1 运算后的值为“0“则 x 减 1,如果不为“0“则跳过*/ if(b)x=7;else+x;/*如果 b 不为“0“则变量 x 被赋值为“7“,如果 b 为“0“则 x 加1*/ 5 【正确答案】 C6 【正确答案】 B【试题解析】 数组名通常表示的是数组的首地址,故答案选 B。7 【正确答案】 A【试题解析】 本题主要考查考牛对移位运算的理解。左移位时,原有各位的值向左移动一位,即各位的值由低位向高位移动一位,移出的空位补 0。而计算机

13、中所使用的数据都是以二进制数的形式表示,左移一位的结果是原先的 2 倍。8 【正确答案】 A9 【正确答案】 A【试题解析】 数组名代表数组的首地址。计算数组元素的地址时将数组首地址加上相应的偏移量即可。10 【正确答案】 C11 【正确答案】 C12 【正确答案】 C13 【正确答案】 D【试题解析】 当第一次进入循环时 a=1,先执行“b-=a ;a+;“ 此时 b=9,a=2;然后判定 b 是否小于 0。如果 b 小于 0,断续执行循环体;如果 b 不小于 0,循环终止。完成判定后 b 自减 1。如此循环体被执行四次,最终因 b=-30 而终止。循环终止时 a=5、b=-4 。14 【正

14、确答案】 C【试题解析】 在整个语句执行的过程中,n 一共自加了两次。第一次在“(-m=n+)?“条件判定中,第二次在判定条件不成立时选择执行“:“后的语句“+n;“。故 n=7。15 【正确答案】 B【试题解析】 参数 b 是长整型,表示从开始位置的偏移字节数。二、填空题16 【正确答案】 0【试题解析】 (a-b+c)=-1,其值非零,逻辑非后为 0。17 【正确答案】 8【试题解析】 a13是数组 a34=1,2,3456,78的第八个元素。18 【正确答案】 2 1【试题解析】 main() int x=1,y=0,a=0 ,)=0; switch(x) case 1:switch(y

15、)/*x=1 进入此分支*/ case 0:a+;break;/*y=0 进入此分支*/ case 1:b+ ;break; /*此处无与 case 1 对应的 break 继续执行下一行语句*/ case 2:a+;b+;break ;/*不论 x 值是否与之匹会被执行*/ printf(“%d%dn“,a,b) ; 19 【正确答案】 -3【试题解析】 此为求(-19)/3 的余数。20 【正确答案】 stdioh21 【正确答案】 10【试题解析】 求的是 i+j 的值。每一次循环 i 和 j 都分别加、减 1,故其和值不变。22 【正确答案】 ack【试题解析】 打印输出的分别是该值所

16、对应的字符。23 【正确答案】 不变24 【正确答案】 1625 【正确答案】 字符三、程序分析题26 【正确答案】 26【试题解析】 #include stdioh void prty(int*x) printf(“%d“,+*x) ; /*打印输出指针变量 x 所指向的内存单元的数据自增 1后的值*/ main() int a=25; prty(a): printf(“%dn“,a);/*打印输出此时变量 a 的值。注意 main()函数对函数 prty()的调用所采用的参数传递方式是地址传递方式;即 a 的值会被函数 prty()改变*/ 27 【正确答案】 7,1【试题解析】 #inc

17、lude stdioh int ast(int x,int y,int *cp,int *dp) *cp=x+y;*dp=x-y; main() int a,b,C,d; a=4; b=3; ast(a,b,c,d);/*调用函数 ast()对 a、b、C、d 四个变量进行运算。注意这里关于变量 C 的参数传递方式是采用地址传递方式 */ printf(“%d,%dn“,C ,d); 28 【正确答案】 xyabcABC【试题解析】 #include stdioh #include stringh main() char p110=“abc“,p210=“ABC“,str50=“xyz“; s

18、trcpy(str+2,strcat(p1,p2);/*将字符数组 p2 连接在字符数组 p1 后面,并将之复制到数组 str 的第二个元素之后*/ printf(“%sn“,str); 29 【正确答案】 8 6 4 2 0【试题解析】 #include stdioh #include stringh main() int y=9; for(;y0;y-) if(y%3=0) printf(“%d“,-y);continue;)/*如果 y 是 3 的倍数,则执行本行并跳过循环体后面的内容继续下一次循环*/ printf(“%d“,-y); 四、程序填充题30 【正确答案】 n/*第一空。从

19、键盘上输入十制数 n*/ n%2/*第二空。取余数填补低位*/ n/2/*第三空*。为下一次循环进行更高的一位运算做准备/31 【正确答案】 c=getchar()/*第一空。得到从键盘输入的值,并判断是不是结束标志“$“*/ numi/*第二空。判断用以记录个数的数组元素是否为 0,如为 0 则不输出*/ i+65/*第三空。从语句 “numc-65+=1;“可知数组对字符的记录是通过下标和字符的 ASC值之间的关系进行的。故此处应填上与之相应的换算关系*/32 【正确答案】 pI=aI/* 第一空。给指针数组 P 的元素分别赋以相应的数组a 的元素的地址 */ I25/*第二空。确定循环的

20、次数,以防数组越界 */ max=pI/*第三空。将最值赋予字符变量 max*/五、程序设计题33 【正确答案】 #include stdio #includestdlib h main() int n,i,s=1,k; scanf(“%d“,n) ; if(n10)exit(0);/*判定输入变量值是否超过 10,如超过则自动终止程序运行*/ k=2*n-1;/*确定输出最长行输出的数字个数 */ while(k!=0)/*确定输出模式,并循环输出*/ for(i=0;i n-1;i+)primf(“ “); for(i=0;i 2*s-1;i+)printf(“%d“ ,s); print

21、f(“n“); if(s k)-n;+s ;-k ; /*当 sk 时输出为增量形式输出 */ else+n; -s;-k ;/*当 sk 时输出为减量形式输出 */ 34 【正确答案】 #includestdioh void main() char ch;FILE*fp1,*fp2; fp1=fopen(“x1dat“,“r“);/*以只读方式打开文件 x1dat*/ fp2=fopen(“x2dat“,“w“);/*以可写方式拱形文件 x2dat*/ while(!feof(fp1) ch=fgetc(fp1);/*从文件 x1dat 读取字符*/ if(ch!=)/*判定所读取字符是否为“空格“*/ fputc(ch,fp2); fclose(fp1);fclose(fp2);/*关闭文件*/

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

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

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