高级语言程序设计自考模拟7.docx
- 文档编号:27629021
- 上传时间:2023-07-03
- 格式:DOCX
- 页数:16
- 大小:19.62KB
高级语言程序设计自考模拟7.docx
《高级语言程序设计自考模拟7.docx》由会员分享,可在线阅读,更多相关《高级语言程序设计自考模拟7.docx(16页珍藏版)》请在冰豆网上搜索。
高级语言程序设计自考模拟7
[模拟]高级语言程序设计自考模拟7
单项选择题在每小题列出的四个备选项中只有一个是符合题目要求的。
第1题:
下列关于变量赋值及表达式计算时的数据类型转换规则描述正确的是()
A.变量赋值时数据类型转换规则是就长不就短,表达式计算时数据类型转换规则是就左不就右
B.变量赋值时数据类型转换规则是就左不就右,表达式计算时数据类型转换规则是就长不就短
C.变量赋值及表达式计算时的数据类型转换规则是具有强制性而不自动的
D.变量赋值及表达式计算时的数据类型转换规则是具有强制性而自动的
参考答案:
B
答案解析:
第2题:
下列不属于C语言标识符的是()
A.abc
B.ABC
C.AB_C
D.2abc
参考答案:
D
答案解析:
第3题:
执行下列程序后输出的结果是()#include<stdio.h>main(){intj,i,k=0,m=0;for(i=0;i<2;i++){for(j=0;j<3;j++)k++,k-=j;}m=i+j;print{("k=%d,m=%d\n",k,m);}
A.k=0,m=5
B.k=0,m=3
C.k=1,m=5
D.k=1,m=3
参考答案:
A
答案解析:
#include<stdio.h>main(){intj,i,k=0,m=0;for(i=0;i<2;i++)/*循环条件是"i<2",步进值为1*/{for(j=0;j<3;j++)/*循环条件是"j<3",步进值为1*/k++,k-=j;/*此语句为逗号表达式,表达式"k++"和"k-=j"在循环"for(j=0;j<3;j++)"中都会被执行*/}m=i+j:
/*此处所使用的i和j的值都是在上述循环执行后i和j的值*/printf("k=%d,m=%d\n",k,m);}
第4题:
字符串"saveme!
"在内存中所占用的字节数是()
A.4
B.6
C.8
D.9
参考答案:
D
答案解析:
第5题:
下列程序执行后的输出结果是()main(){intx='C';printf("%d\n",'A'-x+3);)
A.1
B.2
C.3
D.5
参考答案:
A
答案解析:
第6题:
系统提供的文件尾测试函数是()
A.feof()
B.fgectc()
C.fseek()
D.rewind()
参考答案:
A
答案解析:
第7题:
将字符串转换成浮点数的函数是()
A.atof()
B.atoi()
C.stof()
D.stoj()
参考答案:
A
答案解析:
第8题:
以下程序的输出结果是()#definef(x)x*xmain(){inta=6,c;c=f(a);printf("%d\n",c);)
A.6
B.9
C.18
D.36
参考答案:
D
答案解析:
#definef(x)x*xmain(){inta=6,b=2,c;c=f(a)/f(b);/*将宏定义代入替换计算可求得结果*/printf("%d\n",c);}
第9题:
已知程序清单如下()#include<stdio.h>main(){charc1,c2;scanf("%c,%c",&c1,&c2);switch(c1){case'a':
printf("100");breakcase'b':
{switch(c2){case'+':
printf("90");break;case'-':
printf("85");)break}break;}} 当输入"b,-"时,程序的输出结果是
A.100
B.90
C.85
D.不确定
参考答案:
C
答案解析:
第10题:
设int类型的数据长度为2个字节,则unsignedint类型的数据取值范围是()
A.0~255
B.-256~255
C.0~65535
D.-32768~32767
参考答案:
C
答案解析:
第11题:
设charx='a',则printf("X=%c,y=%c\n",x,97);的输出是()
A.x=a,y=a
B.x=97,y=a
C.x=97,y=97
D.x=a,y=97
参考答案:
A
答案解析:
第12题:
以下程序的输出结果是()intd=1;fun(intp){staticintd=5;d+=P:
printf("%d",d);return(d);}main(){intam=3;printf("%d\n",fun(a+fun(d))):
}
A.699
B.669
C.61515
D.6615
参考答案:
C
答案解析:
intd=1;fun(intp){staticintd=5;/*变量d被定义为static存储类型的int整型变量,作用域仪限两数fun(intp)内。
函数fun(intp)被执行之后变量d仍然存在,再次执行函数fun(intp)时所使用的变量d的值是上次调用函数fun(intp)时d所得到的新值。
*/d+=P;printf("%d",d);/*每次调用都会打印输出d的值*/return(d);/*返回d的值*/main(){inta=3;printf("%d\n",fun(a+fun(d)));/*此处调用函数fun(intp)时,所用的变量d为整个程序段头所定义的d*/}
第13题:
若有以下说明和语句()structworker{intno;char*name;}work,*p=&work; 则以下引用方式不正确的是
A.work.no
B.(*p).no
C.p->no
D.work->no
参考答案:
D
答案解析:
第14题:
日期型结构date是由系统自动定义的,其所在的头文件是()
A.stdio.h
B.dos.h,
C.date.h
D.stdlib.h
参考答案:
B
答案解析:
填空题
第15题:
执行语句"a=5+(c=6);"后,变量a、c的值依次为______。
参考答案:
116
详细解答:
第16题:
若有说明inti,j,k;则表达式i=10,j=20,k=30,k*=i+j的值为______。
参考答案:
900
详细解答:
第17题:
print{("%5.3f\n",123456.12345);输出为______。
参考答案:
123456.123
详细解答:
第18题:
表达式~3&(2&3^4)的值为______。
参考答案:
4
详细解答:
第19题:
执行语句"ints=0,n=5;while(--n)s+=n;"后,变量s、n值依次为______。
参考答案:
100
详细解答:
循环体"while(--n)s+=n;"连续执行直到n等于0时为止。
第20题:
程序中使用了字符串函数(如scanf),则必须包含的头文件名为______。
参考答案:
stdio.h
详细解答:
第21题:
访问结构体数组元素a[k]的成员b,写作______。
参考答案:
a[k].b
详细解答:
第22题:
执行语句"for(s=0,i=1;i<11;i++){if(i==6)continue;s+=i;).t后,s值为______。
参考答案:
49
详细解答:
语句"for(s=0,i=1;i<11;i++){if(i==6)continue;s+=i;}"中循环体被执行10次。
其中当i=6时,循外体内"s+=i;"不被执行。
第23题:
执行语句"n=1;if(n=5)n++;"后,变量n值为______。
参考答案:
6解知析:
语句中"if(n=5)"一句给n赋以5值,执行"n++;"之后n的值为6。
详细解答:
第24题:
计算a、b、C中最小值的条件表达式为______。
参考答案:
a<d?
a:
(b<c?
(d=b):
(d=c))
详细解答:
程序分析题
第25题:
#include<stdio.h>
intf1(intx,inty){returnx>y?
x:
y;)
intf2(intx,inty){returnx>y?
y:
x;}
main()
{
inta=4,b=3,c=5,d=2,e,f,g;
e=f2(f1(a,b),f1(C,d));f=f1(f2(a'b),f2(c,d));
g=a+b+c+d-e-f;
printf("%d,%d,%d\n",e,f,g);
}
__________
参考答案:
4,3,7
详细解答:
#include<stdio.h>intf1(intx,inty){returnx>y?
x:
y;}/*如果x>y则输出x*/intf2(intx,inty){returnx>y?
y:
x;}/*如果x>y则输出y*/main(){inta=4,b=3,c=5,d=2,e,f,g;e=f2(f1(a,b),f1(c,d));f=f1(f2(a,b),f2(c,d));/*嵌套调用函数f1和f2*/g=a+b+c+d-e-f;printf("%d,%d,%d\n",e,f,g);}
第26题:
#include<stdio.h>
intfun(int*a,inti,intj)
{if(i<j&&j<5)
{i++;j--;
a[i]+=a[j]:
{un(a,i,j);
returna[i];
}
}
main()
{intx[]={2,6,18,10,12},i;
for(i=0;i<5;i++)
if(i==2)
print{("%d\n",fun(x,0,3));
}
__________
参考答案:
24
详细解答:
#include<stdio.h>intfun(int*a,inti,intj)/*此函数为采用递归算法的函数*/{if(i<j&&j<5)/*保证i和j在数组范围内当i<j时执行下列语句*/{i++;j--;a[i]+=a[j];fun(a,i,j);/*函数自身调用自身的一个递归调用过程*/returna[i];/*返用数组几素a[i]的值*/}}main(){intx[]={2,6,18,10,12},i;for(i=0;i<5;i++)if(i=-2)printf("%d\n",fun(x,0,3));/*当a=2时打印输出fun(x,0,3)的值*/}
第27题:
#include<stdio.h>
main()
{charb[]="ABCDEFG";
char*chp=e&b[7];
while(--chp>&b[0])
putchar(*chp);
}
__________
参考答案:
GFEDCB
详细解答:
#include<stdio.h>main(){charb[]="ABCDEFG";char*chp=&b[7];/*指针变量chp获得数组元素b[7]的值*/while(--chp>&b[0)/*逆序输出*/putchar(*chp);}
第28题:
#include<stdio.h>
intast(intx,inty,int*cp,int*dp)
{*cp=x+y;
*dp=x-Y;
}
main()
{inta,b,C,d;
a=4;b=3;
ast(a,b,&c,&d);
printf("%d%d\n",c,d);
}
__________
参考答案:
71
详细解答:
#includeintast(intx,inty,int*cp),int*dp)/*关于变量c和d的参数传递是地址传递的方式*/{*cp=x+y;*dp=x-y;}main(){inta,b),c.d;{a=4;b=3;ast(a,b,&c,&d);/*调用函数ast()*/prinlf("%d%d\n",c,d);}
程序填充题
第29题:
下面程序可用来统计文件中字符的个数。
#include<stdio.h>
main()
{FILE*fp;
longnum=0;
if((fp=______)==NULL)/*第一空*/
{printf("Cannotopenfile\n");exit(0);}
while(______)/*第二空*/
{______;}/*第三空*/
printf("num=%d\n",num);
fclose(fp);
}
参考答案:
fopen("fname.dat","r")/*第一空。
以只读模式打开文件fname.dat*/!
feof(fp++),*第二空。
测试是否到达文什尾*/num++/*第三空。
字符个数统计*/
详细解答:
第30题:
函数YangHui的功能是把杨辉i角形的数据赋给二维数组的下半三角,形式如下:
1
11
121
1331
14641
其构成规律是:
(1)第0列元素和主对角线元素均为1
(2)其余元素为其左上方和正上方元素之和(3)数据的个数每行递增1
#include<stdio.h>
#defineN5
voidYangHui(intx[N][N])
{inti,j;
x[0][0]=1;
for(i=1;i<N;i++)
{x[i][0]=______=1;/*第一空*/
for(j=1;j<i;j++)
if(______)/*第二空*/
x[i][j]=______;/*第三空*/
}
}
参考答案:
x[i][i],*第一空。
将对角线置*/i!
=j*第二空,判定是否为对角线上的元素*/x[i][j-1]+x[i-1][j]/*第三空。
根据构成规律
(2)求出该元素的值*/
详细解答:
第31题:
下面程序段可以求出n!
的值。
#include<stdio.h>
main()
{inti,n;
longnp;
scanf("%d",&n);
______;/*第一空*/
for(i=2;______;i++)/*第二空*/
______;/*第三空*/
printf("n=%d,n!
=%ld\n",n,np);
}
参考答案:
np=1/*笫一空。
给变量np赋以1的初值*/i<=n/*第二空。
确定乘法运算的上限*/np*=i/*第三空。
求阶乘的乘法运算*/
详细解答:
程序设计题
第32题:
函数huiwen的功能是检查一个字符串是否是回文。
当字符串是回文时,函数返回字符串:
"yes!
",否则函数返回字符串:
"no!
",并在主函数中输出。
所谓回文即正向与反向的拼写都一样,例如:
adgda。
__________
参考答案:
#include<stdio.h>char*huiwen(char*str)/*回文验证函数,采用地址传递方式*/{char*p1,*p2;inti,t=0;p1=sir;p2=str+(strlen(str)-1);/*p1和p2将分别获得字符串头和尾(非"\0")的地址*/for(i=0;i<=strlen(str)/2;i++)if(*p1++!
=*p2--){t=1;break;}/*将字符串两端字符进行对比,并向中间靠拢。
出现对称不相等的字符(字符串不是回文)就终止循环,将变量t置为1*/if(!
t)relurn("yes!
");elsereturn("no!
");}main(){charstr[50];printf("Input:
");scanf("%s",str);printf("%s\n",huiwen(str));}
详细解答:
第33题:
编一个程序,对名为"abc.txt"的磁盘文件中"@"之前的所有字符加密,加密方法是每个字节的内容减10。
__________
参考答案:
#include<stdio.h>#include<sldlib.h>main(){FILE*fp;charc;if((fp=fopen("abc.txt","r+"))==NULL)/*测试文什是否正确被打开*/{printf("Cannotopenfile!
\n");exit(0);)while(!
feof(fp))if((c=fgetc(fp))!
='@')/*如果不足@字符则进行加密运算*/{c=c-10;/*加密运算*/fseek(fp,-11,1);/*前移一个字符。
因在执行fgetc(fp)时文什内部指针会自动后移一个字符。
指向应被加密字符的下一个字符*/fputc(c,fp);/*将获得加密后的字符填入该位置,且文件内部指针会自动后移一个字符*/fseek(fp,01,1);)/*避免指针漂移,定位文件内部指针在当前位置不移动,并将其传递给函数feof(fp))*/elsebreak;fclose(fp);return0;}
详细解答:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 高级 语言程序设计 自考 模拟