全国自考(高级语言程序设计)模拟试卷3
一、1.单项选择题
0. 下列关于C程序的描述不正确的是( )
A.C程序是由C语句组成的语句序列
B.C程序由若干个函数构成
C.主函数可以调用其他任何函数
D.C程序的执行可以从任何函数开始
1. 以下符合C语言语法的实型常量是( )
A.1.2E0.5
B.3.14.159E
C.0.005
D.E15
2. 设整型变量a的值是6,执行下列语句后a的值是( ) switch(a%2) { case 0:a-=2; case 1:a+=1; default:a=6; }
A.4
B.5
C.6
D.7
3. 设有定义"chara=2,b=5;"求表达式"~a^b<<2"的值(假定现有计算机字长为16) ( )
A.-32
B.32
C.-23
D.23
4. 有以下程序段( ) int n,t=1,s=0; scanf("%d",&n); do{s=s+t;t=t-2;}while(t!=n); 为使此程序不陷入死循环,从键盘输入的数据应该是
A.任意正奇数
B.任意负偶数
C.任意正偶数
D.任意负奇数
5. 有以下程序段( ) main() {int x=0,y=5,z=3; while(z-->0&&++x<5)y=y-1; printf("%d,%d,%d ",x,y,z); 程序执行后的输出结果是
A.3,2,0
B.3,2,-1
C.4,3,-1
D.5,-2,-5
6. 设变量已正确定义,则以下能正确计算f=n!的程序段是( )
A.f=0: for(j=1;j<=n;j++)f*=j;
B.f=1; for(j=1;j<n;j++)f*=j;
C.f=1; for(j=n;j>1;j++)f*=j;
D.f=1 for(j=n;j>-2;j--)f*=j;
7. 有以下程序( ) main() {int i,n=0; for(i=2;i<5;i++) {do {if(i%3)continue; n++; }while(!i); n++; } printf("n=%d ",n); } 程序执行后的输出结果是
A.n=2
B.n=3
C.n=4
D.n=5
8. 有以下程序( ) #include<stdio.h> char fun(char x,char y) { if(x)return y; } main() {inta="9",b="8",c="7"; printf("%c ",fun(fun(a,b),fun(b,c))): } 程序的执行结果是
A.7
B.8
C.9
D.函数调用出错
9. 有以下程序( ) #include<stdio.h> int a=2; int f(int*A) {return(*A)++;} main() {int s=0; {int a=5; s+=f(&a); } s+=f(&a); printf("%d ",s); } 执行后输出结果是
A.10
B.9
C.7
D.8
10. 若x是整型变量,pb是基本类型为整型的指针变量,则正确的赋值表达式为( )
A.pb=x
B.pb=&x
C.*pb=&x
D.*pb=*x
11. 设有数组定义:char array[]="china";,则数组array所占用的空间为( )
A.4个宁节
B.5个字节
C.6个字节
D.7个字节
12. 如果打开文件时,选用的文件操作方式是"wb+"则下列说法中正确的是( )
A.要打开的文件必须存在
B.打开文件后只能渎数据
C.文件打开后删除原内容再写
D.打开文件后只能写数据
13. 设有int a[]={10,11,12},*p=&a[0];,则执行完*p++;*p+=1;后a[0],a[1],a[2]的值依次是( )
A.10,11,12
B.11,12,12
C.10,12,12
D.11,11,12
14. 有以下程序( ) main() {int i,s=0; for(i=1;i<10;i+=2)s+=i+1; printf("%d ",s); } 程序执行后的输出结果是
A.自然数1~9的累加和
B.自然数1~10的累加和
C.自然数1~9中的奇数之和
D.自然数1~10中的偶数之和
二、2.填空题
0. 与标准输出设备所对应的文件型指针名为______。
1. 将字符串写入文件时,不写入文件的字符串结束标志是______。
2. 将字符转换成ASCⅡ代码值的函数是______。
3. 文件包含命令是以______为开头的编译预处理命令。
4. ______是C语言中唯一的一个三目运算符,它是由两个符号组成。
5. 数组int arry[5][9];的第二维下标的最大值是______。
6. 在进行程序清单的编译时,______是先于编译进行的。
7. 已知char str[]="ABCD";,则语句printf("%d",strlen(str));的输出是______。
8. 设int a;float b;char c;long d;double e;unsigned u;,则表达式a+c/b-d*e+u值的类型是______。
9. 设
int x=5;
x+==x-=x*x;
则x的值是______。
三、3.程序分析题
0. 以下程序运行时输入:12<回车>,执行后输出结果
#include<stdio.h>
main()
{char ch1,ch2;int n1,n2;
ch1=getchar();ch2=getchar();
n1=ch1-"0";n2=n1*10+(ch2-"0");
printf("%d
",n2);
}
1. #include<stdio.h>
void f(int y,int*x)
{y=y+*X; *x=*x+y;}
main()
{int x=2,y=4;
f(y,&x);
printf("%d%d
",x,y);
}
2. #include<stdio.h>
char *ss(char *s)
{return s+strlen(s)/2;)
main()
{char *p,*str="abcdefgh";
p=ss(str);printf("%s
",p);
}
3. #include<stdio.h>
int f(int a[],int n)
{if(n>1)return a[0]}+f(&a[1],n-1);
else return a[0];
}
main()
{int aa[3]={1,2,3},s;
s=f(&aa[0],3);printf("%d
",s);
}
四、4.程序填充题
0. 完善下面程序段,以使其完成以下数学函数的计算。
#include<stdio.h>
#include<math.h>
main()
{float x,y,f1,fun();
scanf("%f%f",&x,&y);
f1=x*x/fun(______);/*第一空*/
printf("A=%f
",f1);
}
float fun(float f)
{float f2;
f2=f*f+sqrt(1+_____/*第二空*/+______);/*第三空*/
return(f2);
}
1. 以下程序能将字符串Program!反向打印出来,请填空。
#include<stdio.h>
void out(char *str)
{char *s=______;/*第一空*/
if(*s==NULL)return:
while(______)s++;/*第二空*/
s--;
printf("%c
",*s);
______=NULL;/*第三空*/
out(str);
}
main()
{char c[]="Program!";
out(c);}
2. 下面程序把从终端读入的文本(用"@"作为文本结束的标志)复制到一个名为bi.dat的新文件中,请填空。
#include<stdio.h>
FILE *fp;
main()
{char ch;
if((fp=______)==NULL)/*第一空*/
exit(0);
while((______)!="@")/*第二空*/
fputc(ch,fp);
______;/*第三空*/
}
五、5.程序设计题
0. 编一个程序,对名为"abc.txt"的磁盘文件中"
1. 函数huiwen的功能是检查一个字符串是否是回文。当字符串是回文时,函数返回字符串:"yes!",否则函数返回字符串:"no!",并在主函数中输出。所谓回文即正向与反向的拼写都一样,例如:adgda。
延伸阅读
- 考前自救指南:希赛自考题库快速提分
- 自考专属刷题工具,刷题即提分!
- 最后9天,自考历年真题应该怎么刷?
- 自考备考一站式服务:希赛自考题库APP
- 0基础逆袭秘籍:希赛全套自考学习包(含智能题库)
- 避开备考误区!用希赛自考APP快速提分!
自考微信公众号
扫码添加
自考备考资料免费领取
去领取
扫描二维码