全国自考(高级语言程序设计)模拟试卷6
一、1.单项选择题
0. C语言中错误的int类型常数是( )
A.123
B.1F7
C.38
D.OxAF
1. 以下属于C语言保留字的是( )
A.define
B.put
C.fclose
D.extern
2. sizeof(float)是( )
A.函数调用
B.int型表达式
C.float型表达式
D.非法表达式
3. 结构体变量各成员内存分配的顺序是( )
A.顺序的
B.逆序的
C.随机的
D.只分配一个最大成员内存占用量
4. 若定义了int a;char b;float c;, 则表达式a*b-c的类型是( )
A.float
B.char
C.int
D.double
5. 若有以下定义和语句: char *s1="12345",*s2="1234": printf("%d ",strlen(strcpy(s1,s2))); 则输出结果是( )
A.4
B.5
C.6
D.不确定
6. 若x、y均是int型变量,则执行以下语句后的结果是( ) for(x=1;x<5;x+=2) for(y=1;y<5;y++) {printf("%2d",x*y); if(y==4)printf(" "); }
A.1 2 3 4 3 6 9 12
B.2 3 4 5 3 4 5 6
C.1 2 3 4 5 6 9
D.2 3 4 3 6 9 6 9 12
7. 设整型变量m、na、b的值均为1,执行(m=a==b)||(n=a>b)后m,n的值是( )
A.0,1
B.1,0
C.1,1
D.0,0
8. char型常量在内存中存放的是( )
A.二进制代码值
B.十进制代码值
C.十六进制代码值
D.ASCⅡ代码值
9. 下面程序段所表示的数学函数关系是( )
y=-1
if(x!=0)if(x<0)y=1;else y=0;

10. 现有下列程序语句,执行后的结果是( ) #include<stdio.h> void main() {char s1[100]="123",s2[100]="qwer"; puts(s1);puts(s2); printf("%s%s",s1,s2); }
A.123 qwer 123 qwer
B.123 qwer 123qwer
C.123qwerl23qwer
D.123qwer 123qwer
11. 假定所有变量均已正确说明,下列程序段运行后x的值是( ) a=b=c=0;x=60; if(!a)x--; else if(b)if(c)x=3; else x+=4;
A.3
B.4
C.60
D.63
12. 若有以下定义,则不能正确地表示数组中的元素的是( ) char *s="1,2,3,4,5,6,7,8,9,0,";
A.*s
B.s[9]
C.*(s+1)
D.*(s+10)
13. 设有下列数据定义语句,则"printf("%d ",d[0].y/d[0].x*d[1].x);"的输出是( ) struct{int x;int y;}d[2]={{1,3},{2,7)};
A.0
B.1
C.3
D.6
14. 执行以下程序段后,m的值是( ) int a[2][3]={{1,2,3},{4,5,6)}; int m,*ptr; ptr=&a[0][0]; m=(*ptr)*(*(ptr+2))*(*(ptr+4));
A.15
B.24
C.45
D.不确定
二、2.填空题
0. 若有说明int i,j,k;则表达式i=10,j=20,k=30,k*=i+j的值为______。
1. print{("%5.3f ",123456.12345);输出为______。
2. 表达式~3&(2&3^4)的值为______。
3. 执行语句"int s=0,n=5;while(--n)s+=n;"后,变量s、n值依次为______。
4. 程序中使用了字符串函数(如scanf),则必须包含的头文件名为______。
5. 访问结构体数组元素a[k]的成员b,写作______。
6. 执行语句"for(s=0,i=1;i<11;i++){if(i==6)continue;s+=i;).t后,s值为______。
7. 执行语句"n=1;if(n=5)n++;"后,变量n值为______。
8. 计算a、b、C中最小值的条件表达式为______。
9. 执行语句"a=5+(c=6);"后,变量a、c的值依次为______。
三、3.程序分析题
0. 输入数据:2743<回车>。
#include<stdio.h>
main()
{int c;
while((c=getchar())!="n")
{switch(c-"2")
{case 0:
case 1:putchar(c+4);
case 2:putchar(c+4);break;
case 3:putchar(c+3);
case 4:putchar(c+2);break;}
}
printf("
");}
1. #include<stdio.h>
void swap(int *P,int*q)
{
int t;
t=*P;*P=*q;*q=t;
}
main()
{int a=10,b=20;swap(&a,&b);
printf("%d%d
",a,b);
}
2. 若输入3个整数3,2,1<回车>则下面程序的输出结果是
#include<stdio.h>
main()
{int i,n,aa[10]={0,0,0,0,0,0};
scanf("%d%d%d",&n,&aa[0],&aa[1]);
for(i=0;i<=n;i++)
printf("%d",aa[i]);
}
3. #include<stdio.h>
typedef struct abc
{int a,b,c;
};
main()
{struct abe s[2]={{1,2,3),{4,5,6}};
int t=-s[0].a+s[1].b;
printf("%d
",t);
}
四、4.程序填充题
0. 下面程序段的功能是将形参x的值转换成二进制数,所得二进制数的每一位数放在一维数组中返回,二进制数的最低位放在下标为0的元素中,其他以此类推。
#include
main(int x,int b[])
{int k=0,r,i;
scanf("%d",x);
do
{r=x%2;
b[______]=r;/*第一空*/
x/=2;
}while(______);/*第二空*/
for(______);i>=0;i--)/*第三空*/
printf("%d",b[i]);
}
1. 下面程序是将字符串P中的所有字符复制到字符串b中,要求每复制三个字符后插入一个空格。
#include<stdio.h>
void cp(char *p,char *b)
{int i,k=0;
while(*p)
{i=0;
while(______)/*第一空*/
{b[k]=*P;
k++;p++;i++;
}
if(*p)
{______;/*第二空*/
}
}
______;/*第三空*/
}
main()
{char a[20],b[20];
gets(a);
cp(a,b);
puts(b);
printf("
");
}
2. 下列给定程序中,函数fun()的功能是:读人一个字符串(长度<20),将该字符串中的所有字符按ASCⅡ码降序排序后输出。
#include<stdio.h>
void fun(char t[])
{
char c;
int i,j;
for(i=0;______;i++)/*第一空*/
for(j=i+1;j<=strlen(t);j++)
if(______)/*第二空*/
{
c=t[j];
t[j]=t[i];
t[i]=c;
}
}
main()
{
char s[81];
printf("Please enter a character string:
");
gets(s);
printf("
Before sorting:
%s",s);
______;/*第三空*/
printf("
After sorting decreasingly:
%s
",s);
}
五、5.程序设计题
0. 编程要求输出两个字符串对应位置相等的字符,并输出其位置号(自然编号)。
1. 建立一个磁盘文件,文件名由键盘输入,文件内容也由键盘输入。文件内容的输入以"*"作为输入结束标志。
延伸阅读
- 考前自救指南:希赛自考题库快速提分
- 自考专属刷题工具,刷题即提分!
- 最后9天,自考历年真题应该怎么刷?
- 自考备考一站式服务:希赛自考题库APP
- 0基础逆袭秘籍:希赛全套自考学习包(含智能题库)
- 避开备考误区!用希赛自考APP快速提分!
自考微信公众号
扫码添加
自考备考资料免费领取
去领取
扫描二维码