当前位置:文档之家› 高级语言程序设计自考模拟10

高级语言程序设计自考模拟10

[模拟] 高级语言程序设计自考模拟10单项选择题在每小题列出的四个备选项中只有一个是符合题目要求的。

第1题:下列不属于面向机器语言的是( )A.符号语言B.二进制语言C.汇编语言D.C语言参考答案:D答案解析:第2题:设int b=2;表达式(b<<2)/(b>>1)的值是( )A.2B.4C.6D.8参考答案:D答案解析:左移位运算移一位相当于乘2,右移位运算右移一位相当于除2。

第3题:设置变量定义为:int a=0x53;int b=6;,求表达式~a|b的值(假定现有计算机字长为16)( )A.82B.-82C.72D.-72参考答案:B答案解析:因计算机字长为16.故a的二制表示是0000000001010011,b的二进制表示是0000000000000110。

运算符"~"自右向左结合,运算符"|"是自左向右结合;且运算符"~"的优先级高于运算符"|"的优先级,则进行计算的顺序是"(~a)|b"。

最终计算结果是1111111101010010(十进制值为-82)。

第4题:为了判定两个字符串是否相等应当使用( )A.if(s1==s2)B.if(s1=s2)C.if(strcmp(s1,s2)==0)D.if(strcmp(s1,s2)=0)参考答案:C答案解析:第5题:设char c[5]={'a','b','\0','C','\0');则printf("%s",c);的输出是( )A.'a''b'B.abC.abcD."ab\0c"参考答案:B答案解析:第6题:以下程序的运行结果是( ) #include<stdio.h>main() { int a[]={1,2,3,4,5,6,7,8,9,10,11,12};int *p=&a[5],*q=NULL;printf("%d%d\n",*p,*q);}A.运行后报错B.6 0C.6 12D.5 5参考答案:A答案解析:#include<stdio.h> main() { int a[]={1,2.3.4,5,6,7,8,9,10,11,12}; int*p=&a[5],*q=NULL; printf("%d%d\n",*P,*q);/*被置空的指针不能参与"*"运算*/ }第7题:当执行以下程序段时( ) do{y--;}while(--y)printf("%d\n",y--);A.循环体将执行一次B.循环体将执行两次C.循环体将执行无限次D.系统将提示有语法错误参考答案:C答案解析:变量y无初值,系统默认非空。

循环将无限次地被执行下去。

第8题:设char str[100];int I=5;,则引用数组元素的错误形式的是( )A.str[I+10]B.*(srr+I)C.(str+I-1)D.*(&(str++)+I)参考答案:D答案解析:第9题:下列表达式的值为0的是( )A.3%5B.3*5C.3/5.0D.3>5参考答案:D答案解析:3>5不为真,故表达式的值为0。

第10题:字符串"2008 Olympic"在存储单元中所占用的字节数是( )A.9B.10C.11D.13参考答案:D答案解析:第11题:设a=5,b=3;,执行语句"printf("%d,%d,(a,b),(b,a));"输出是( )A.5,3B.3,5C.5,5D.3,3参考答案:B答案解析:第12题:执行下列程序段后,*p的值是( ) char *p="asdf";printf("%c",*(p+strlen(p)));A.语句错误B.sC.dD.a参考答案:D答案解析:指针变量P在得到初值"asdf"之后没有初改变过,P就是字符串"asdf"的首地址.故*P的值为a。

第13题:下列关于函数的说法不正确的是( )A.函数是一个可反复使用的程序段B.main()函数也可以做被调函数C.函数参数的输入和输出统称为"函数问数据的传递"D.从定义的角度来分,可分为用户函数和系统函数两类参考答案:B答案解析:第14题:通常适用于从被调用函数中将一个值传回主调函数的参数传递方式是( )A.利用返回值数据传递方式B.利用形参与实参传递数据的方式C.利用全局变量传递数据的方式D.以上都不对参考答案:A答案解析:第15题:下列关于文件随机定位函数fseek()的描述正确的是( )A.若定位正确返回非零值B.包含在头文件stdlib.h中C.本函数只能用于二进制文件D.本函数可以使用文件内部指针直接指向需要的某个数据参考答案:D答案解析:填空题第16题:有以下程序#include<stdio.h>main(){char s[]="159",*P;p=s;printf("%C",*p++);printf("%C",*p++);}程序运行后的输出结果是______。

参考答案:15详细解答:第17题:以下程序运行时若从键盘输入:10 20 30<回车>,输出结果是______。

#include<stdio.h>main(){int i=0,j=0,k=0;scanf("%d%*d%d",&i,&j,&k);printf("%d%d%d\n",i,j,k);}参考答案:10300详细解答:#include<stdio.h> main() { int i=0,j=0,k=0;scanf("%d%*d%d",&i,&j,&k);/*"%*d"不被识别,但仍然占位;故i,j分别获得值10和30.而k的值默认被初始化为0*/ printf("%d%d%d\n",i,j,k); }第18题:有如下程序#include<stdio.h>int rune(int a,int b){return(a+b);)main(){int x=2,y=5,z=8,r;r=rune(rune(x,y),z);printf("%dkn",r);}该程序的输出结果是______。

参考答案:15详细解答:#include<stdio.h> int rune(int a,int b) {return(a+b);} main() {int x=2,y=5,z=8,r; r=rune(rune(x,y),z);/*主函数反复嵌套调用函数rune(),r的实际计算过程为r=x+y+z*/ printf("%d\n",r); }第19题:表示整数X的绝对值大于5时值为"真"的C语言表达式是:______。

参考答案:x>5||x<-5详细解答:第20题:用来定义寄存器类型变量的C语言保留字是______。

参考答案:register详细解答:第21题:分别用十进制表示整形常量-0xlf为______。

参考答案:-31详细解答:第22题:在Turbo C中语言源程序的扩展名为______。

参考答案:c详细解答:第23题:在函数调用过程中,如果形参是指针变量,则实参必须是______。

参考答案:地址表达式详细解答:第24题:判断一个字符是否是英文字母的函数是______。

参考答案:isalpha()详细解答:第25题:读字符串函数是______。

参考答案:fgets()详细解答:程序分析题第26题:#include<stdio.h>void fun(int m,int n,int ar[][4],int*bar){int i,j,x;for(i=0;i<3;i++){x=ar[i][0];for(j=0;j<3;j++)bar[i]=X;}}main(){int a[3][4]={{12,41,36,28},{19,33,15,27},{3,27,19,1)},b[3],i;fun(3,4,a,b);for(i=0;i<3;i++)printf("%4d",b[i]);printf("\n");}__________参考答案:12 19 3详细解答:#include<stdio.h>void fun(int m,int n,int ar[][4],int*bar)/*定义函数并定义其形参变最,其中数组ar是一个每行只有4个元素的数组*/ { int i,j,x;for(i=0;i<m;i++) {x=ar[i][0]; for(j=0;j<n;j++) bar[j]=x; } } main() {int a[3][4]="12,41,36,28},{19,33,15,27},{3,27,19,1}),b[4],i; fun(3,4,a,b); for(i=0;i<3;i++)printf("%4d",b[i]);/*采用格式化输出,以4位的宽度输出褴数b[i],左边不是的位数以空格填充* printf("\n"); }第27题:#include<stdio.h>void swap(int x,int y){int t;t=x;x=y;y=t;printf("%d%d",x,y);}main(){int a=3,b=4;swap(a,b);printf("%d%d\n",a,b);}__________参考答案:4 3 3 4详细解答:#include<stdio.h> void swap(int x,int y)/*形参为整型变量,参数传递的方式为非地址传递方式*/ {int t;t=x;x=y;y=h printf("%d%d",x,y);} main() {int a=3,b=4;swap(a,b);/*调用swap()函数*/ printf("%d%d\n",a,b);/*对函数swap()的调用并没有政变变量a和b的值*/ }第28题:#include<stdio.h>main(){char *a="12134211";int v1=0,v2=0,v3=0,v4=0,k;for(k=0;k<=strlen(a);k++)switch(*a++){default:v4++;case'1':v1++;case'3':v3++;case'2':v2++;)printf("v1=%d,v2=%d,v3=%d,v4=%d\n",v1,v2,v3,v4);}__________参考答案:v1=3,v2=5,v3=4,v4=1 解折:#include<stdio.h>main3() {char *a="12131211";int v1=0,v2=0,v3=0,v4=0,k;for(k=0;k<strlen(a);k++)/*,循环被终止的条件是k的值大于字符串a的长度8*/ switch(*a++)/*选择的条件是数组a的元素,并且a作为于指针变量有一个自增1运算*/ {default:v4++;case'1':v1++;case'3':v3++;case'2':v2++}/*因没有break语句,从符介条什的语句开始,每一行case语句都会被执行*/ printf("vt=%d,v2=%d,v3=%d,v4=%d\n",v1,v2,v3,v4);}详细解答:第29题:#include<stdio.h>int fun(int h){static int a[3]={1,2,3);int k;for(k=0;k<3;k++)a[k]+=a[k]-h;for(k=1;k<3;k++)printf("%d\t",a[k]);return(a[h]);}main(){int t=1;fun(fun(t));}__________参考答案:3 5 3 7详细解答:#include<stdio.h> int fun(int h) {static int a[3]={1,2,3};/*定义一个静态数组a。

相关主题