《高级语言程序设计自考模拟1》由会员分享,可在线阅读,更多相关《高级语言程序设计自考模拟1(11页珍藏版)》请在金锄头文库上搜索。
1、 模拟 高级语言程序设计自考模拟 1单项选择题 在每小题列出的四个备选项中只有一个是符合题目要求 的。第 1 题:下列语言中不属于面向过程的语言是 ( )A. B 语言B. C 语言C. 汇编语言D. ALGOL语言参考答案: C答案解析: 第 2 题: 下列选项中不是转义字符的是 ( )A. B. 0C. tD. O74参考答案: D答案解析: 第 3 题:在C语言中,c和c存储所占用的字节数分别是()A. 1, 1B. 1, 2C. 2, 1D. 2, 2参考答案: B答案解析: 第 4 题:下列程序段运行后, x 的值是 () int a=1 , b=0, x=1;if(!(-a)x-;
2、 if(b)x=7 ; else+x ;A. 0B. 1C. 7D. 8参考答案: B答案解析:本题主要考查考生对单目运算符 - 和+ 的掌握。这两个单目运算符如果是前 缀则先减或加 1,后使用对象;如果是后缀则先使用对象,后减或加1。只要使用了这两个运算符, 变量最终的值一定是进行减或加 1 运算后的值。 inta=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加
3、1*/第 5 题:下列关于 do-while 语句的描述错误的是 ()A. 可构成多重循环结构B. 循环次数不可能为 0C. 循环次数可能为0D. 先执行后判断 参考答案: C答案解析:第 6 题: 调用函数时,若实参是一个数组名,则向函数对应的形参传送的是 ()A. 数据的长度B. 数组的首地址C. 数组的第一个元素的值D. 整个数据元素的值参考答案: B答案解析: 数组名通常表示的是数组的首地址,故答案选 B。第 7 题: 在位移位运算中,操作数左移一位,其结果相当于操作数 ()A. 乘以 2B. 除以 2C. 乘以4D. 除以4参考答案: A答案解析: 本题主要考查考牛对移位运算的理解。
4、左移位时,原有各位的值向左移动一位,即各位的值由低位向高位移动一位,移出的空位补 0。而计算机中所使用的数据 都是以二进制数的形式表示,左移一位的结果是原先的 2 倍。第 8 题:若有以下宏定义: #define N 则执行语句 z=8*N+Y(1) ;后 z 的值为(A.20B.162 #define Y(n) )(n+1)*N)C.14D.不确定参考答案: A答案解析:第 9 题: 若有以下语句:int x=1, 3, 5, 10, 12 ;int * ptr=x则数据组元素“10”的地址是 ()A.x+3B. (x+3) C.ptr D.ptr+10参考答案: A答案解析:数组名代表数组
5、的首地址。 计算数组元素的地址时 将数组首地址加上相应的偏 移量即可。第 10 题:函数调用“ strcpy(str3,strcat(str1,str2) ”的功能是 ( )A. 将字符串 str1 复制到字符串 str2 中,再连接到字符串 str3 后B. 将字符串 str1 连接到字符串 str2 后,再复制到 str3 中C .将字符串 str2 连接到 str1 后,再复制到 str3 中D.将字符串str2复制到strl中,再连接到str3后参考答案: C答案解析:第 11 题:执行语句“ char a10=abcd) A.abcdB.b, * p=a ;”后, *(p+2) 的值
6、是 (C.CD.0参考答案: C答案解析: 第 12 题: 定义函数时,下列选项中可以作为函数存储类型的是 ( )A. registerB. autoC. externD. void参考答案: C答案解析: 第 13 题:若 a、 b 为 int 型变量,则执行以下语句后 a 的值为 ( )a=1;b=10;dob-=a ;a+; )while(b- 0);A. 1B. 3C. 4D. 5参考答案: D答案解析:当第一次进入循环时a=1,先执行b-=a ; a+;此时b=9, a=2;然后判定b是 否小于 0。如果 b 小于 0,断续执行循环体;如果 b 不小于 0,循环终止。完成 判定后b自
7、减1。如此循环体被执行四次,最终因 b=-3 v0而终止。循环终止时 a=5、 b=-4。第 14 题:若 x、y、z、m、n 均为 int 型变量,则执行下面语句后 z 的值为 ()m=10; n=5;x=(-m=n+)?-m:+n ;y=m+;z=n;A. 5B. 6C. 7D. 10参考答案: C答案解析:在整个语句执行的过程中, n 一共自加了两次。第一次在 (-m=n+)? 条件判 定中,第二次在判定条件不成立时选择执行:后的语句+n ;。故n=7。第 15 题: 关于函数 fseek(a ,b,c) 的说法错误的是 ( )A. 参数a是文件型指针,指向所需要的文件B. 参数 b 是
8、 int 型,表示从开始位置的偏移字节数C. 参数c是int型,表示定位的起始位置D. 函数返回值是int型,定位正确返回0;定位错误返回非0参考答案: B 答案解析: 参数 b 是长整型,表示从开始位置的偏移字节数。填空题第 16 题:高级语言编写的程序被称为 ,它是不能在计算机上直接运行的,必须将其翻译成二进制程序后才能执行。参考答案:源程序详细解答:第 17 题:位运算的对象只能是 参考答案:整型数据 详细解答:第 18 题: 下面程序的输出结果是 。#include v stdio. h main()static char b=Hello!world!char *chp= b6 ;wh
9、ile(-chp =b0)putchar(*chp)putchar(n) ;参考答案:!olleH详细解答:& b6 所表示的位置是w的位置;while(-chp = & b0)putchar(*chp) ; 中由于 - 是前置的,所以在执行判定前指针 chp 先行 自减 1。循环体while(-chp = &bO)putchar(*chp) ;结束的条件是chp v & b0 ,循环过程中输出相应字符。第 19 题:参考答案:a/(b*c)-2*d详细解答:第 2O 题: 下列程序语句执行后的结果是 。main()int x=f; printf(%cn ,A+(x-a+1); 参考答案:G详
10、细解答:x=f 则f-a=5, A+5+1=G。对一下 ASCH 码表就行了第 21 题:表示条件 1O v xv 1OO 或 xv O 的 c 语言表达式是 。参考答案:x 10&xv 100 | xv0详细解答:第 22 题:若已知a=10 b=20,则表达式!a v b的值为 2)/(b 1)的值是 参考答案:0详细解答:因b=2,其二进制表达式为。0000010(若计算机为八位机)。右移两化后其值 为 00000000(右移时高位补 0;其十进制值为 0),最终得出表达式的值为 0。 第 24 题:下列语句执行后输出的结果是 。main()double d=3.2; int x , y
11、;x=1.2 ; y=(x+3.8)/5.0 ;printf(%dn , d*y) ;参考答案:0详细解答:因定义的变量 x 和 y 都是 int 型,故在执行语句 x=1.2 ; 时 x 获得的值是 1 ;在执行语句 y=(x+3.8)/5.0; 时, x 以所获得的值 1 参加运算,最终(x+3.8)/5.0的值小于1。故y所获得的值为0。第 25 题: 如果形参是数组名,则传递方式称为 。参考答案:地址传递方式详细解答:程序分析题第 26 题:请在该程序段右侧写出其输出结果 int aa33=2 ,4 ,6 ; main()int j,*p= aa00 ;for(j=0 ; j v 2;
12、 j+)if(j=0)aajj+1=*p+1;else+P ; print(%d,*p) ; 参考答案:23详细解答:int aa33=2,4) ,6 ; main() intj ,*p=aa00 ;for(j=0 ; j v2; j+) /* 限定循环只有两次,J=0 次、j=1 一次*/ if(j=O) /* 第一次执行循环时, j=0 成立 */aajj+1=*p+1;/* 将 3 赋给a01*/ else+P ;/* 第二次执行循环时, j=0 不成立,执行这个语句*/ printf(%d , *p) ; /* 两次循环都执行,第一次打印 a00 第二次打 印 a01 。 */ 第 2
13、7 题: 请在该程序段右侧写出其输出结果。main()int n3, j , k, l ;for(j=0 ; j v 3; j+) nj=0;l=3 :for(j=0 ; j v l ; j+) for(k=0 ; kv l ; k+) nk=nj+1:print(%dn , n1) ; 参考答案:5详细解答:main() int n3, j , k, l ; for(j=0 ; j v3; j+) nj=0;/*给数组元素赋初值 0*/l=3: for(j=0 ; j v l ; j+)/* 限定循环三次 */for(k=0 ; kv l ; k+) /* 限定循环三次 */ nk=nj+1;/* 每次循环加 1 ,注意每次循环 nj 的值是不同的 */ printf(%dn,n1) ; 第 28 题:请在该程序段右侧写出其输出结果。fun3(int x)static int a=3 ;a+=x ;return(a) ; main()int k=2 ,