2012年全国高等教育自学考试高级语言程序设计标准预测试卷(4)
摘要:2012年全国高等教育自学考试高级语言程序设计标准预测试卷(4):2012年全国高等教育自学考试高级语言程序设计标准预测试卷。本试卷总分100分;共有5类型题目
2012年全国高等教育自学考试高级语言程序设计标准预测试卷(4):2012年全国高等教育自学考试高级语言程序设计标准预测试卷。本试卷总分100分;共有5类型题目
一、单项选择题,每小题2分,共30分,在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。
1.下列关于C语言的描述正确的是( )
A.C语言是面向硬件的高级语言
B.C语言是面一种面向对象的程序设计语言
C.C语言是一种结构化程序设计语言
D.C语言的前身是汇编语言
2.C语言的基本数据类型包括( )
A.字符型和数值型
B.字符型和逻辑型
c.整型和实型
D.指针型和数据型
3.已知有以下定义(假定现有计算机字长为16)
Int a=0x48,b=0xf0;
a^b的值为( )
A.184
B.183
C.290
D.287
4.若有以下定义:
char s[20]=="programming",*ps=s;
则不能代表字符o的表达式是( )
A.*(ps+2)
B.s[2]
C.ps[2]
D.*ps+=2
5.若有说明语句:int I,;则以下关于x、*x、x[0]、&x[0][0]的描述正确的是( )
A.x、*x、x[0]、&x[0][0]均表示元素x[0][0]的地址
B.只有x、*x表示元素x[0][0]的地址
C.只有x[0]、&x[O]L0]表示元素x[0][0]的地址
D.只有&x[0][0]表示元素的地址
6.
若有下列类型说明语句:
char w;int x;float y;double z;
则表达式w*x+z-y的结果的数据类型是( )
A.char
B.int
C.float
D.double
7.下列程序正确的运行结果为( )
#include<stdio.h>
main()
{int a[]={2,6,8,10,14,18);
int *ptr[-]={&a[0],&a[1],&a[2],&a[3],&a[4]);
int i;
for(i=0;i<5;i++)
a[i]=a[i]/2+a[i]
printf("%d
",*(*(ptr+2)));
printf("%d
",*(*ptr));
}
A.12
21
B.21
12
C.12
3
D.3
12
8.以下函数的功能是( )
ABC(ps)
char *ps;
{char *P;
p=ps;
while(*p++);
return(p-ps);
}
A.比较两个字符串的大小
B.求字符串的长度
C.将字符串ps复制到P中
D.以上三种说法都不对
9.若x、y是int型变量,则执行以下语句后的x值是( )
#include<stdio.h>
main()
{
int x,y;
for(y=1,x=1;y<50;y++)
{if(x>=10)break;
if(x%2==1)
x+=5;}
x-=3;
}
A.3
B.6
C.7
D.10
10.执行下列语句后b的值为( )
int a,b,C,l=4,m=6,n=8;
int *p1=&1,*p2=&m,*p3;
a=p1==&1;b=3*(-*p1)/(*p2)+7;
c=*(p3=&n)=*p1*(*p2);
A.4
B.5
C.7
D.8
11.若有以下说明,则在seanf函数调用语句中对结构体变量成员引用方式不正确的是( )
struct pub
{char name[20];
int age;
int sex;
}pub[5],*P;
A.scanf("%s",pup[0].name);
B.scanf("%d",&pup[0].age);
C.scanf("%d",&p->sex);
D.scanf("%d",*P.age);
12.设有以下定义
int a[4][3]={{1,2,3},{4,5,6},{7,8,9),{10,11,12};
int *ptr[3]={a[0]},*p=a[0];
则以下能正确表达数组元素a[1][2]的表达式是( )
A.*((*ptr+1)[2])
B.*(*(p+5))
C.*((*ptr+1)+4)
D.*(*(p+1)+2)
13.执行以下程序段后s的值为( )
int a[]={5,6.4,4,8,9,5,8};
int s=0;
int k;
for(k=0;k<8;k+=2)
s+=*(a+k):
A.17
B.22
C.27
D.32
14.不能把字符串"Hello!"符给数组b的语句是( )
A.char b[10]={"H","e","l","l","o","!"};
B.char b[10];b="Hello!";
C.char b[10];strcpy(b,"Hello!");
D.char b[10]="Hello!";
15.下列选项中合法的数组定义是( )
A.int a[]="string";
B.int a[5]={0,1,2,3,4,5};
C.char a="sting";
D.char a[]={0,1,2,3,4}
二、填空题,每小题2分,共20分请在每小题的空格中填上正确答案。错填、不填均无分。
16.与标准输出设备所对应的文件型指针名为______。
17.将字符串写入文件时,不写入文件的字符串结束标志是______。
18.将字符转换成ASCⅡ代码值的函数是______。
19.文件包含命令是以______为开头的编译预处理命令。
20.______是C语言中唯一的一个三目运算符,它是由两个符号组成。
21.数组int arry[5][9];的第二维下标的最大值是______。
22.在进行程序清单的编译时,______是先于编译进行的。
23.已知char str[]="ABCD";,则语句printf("%d",strlen(str));的输出是______。
24.设int a;float b;char c;long d;double e;unsigned u;,则表达式a+c/b-d*e+u值的类型是______。
25.设
int x=5;
x+==x-=x*x;
则x的值是______。
三、程序分析题
阅读下列程序,将输出结果写到各题右侧的空白处。
三、程序分析题,每小题5分,共20分阅读下列程序,将输出结果写到各题右侧的空白处。
26.#include<stdio.h>
void main()
{int i;
for(i=1;i<5;i++)
printf("%d %c
",i,("A"+i));
}
27.#include<stdio.h>
void main()
{int i,j,a[4][4];
for(i=0;i<4;i++)
for(j=0;0<4;j++) a[i][j]=1+i;--j;
for(i=0;i<4;i++)
{for(j=0;j<4;j++)
if(a[i][j]>0)printf("%3 d",a[i][j]);
printf("
");}
}
28.#include<stdio.h>
int f(int n)
{static int s=1;
while(n)s*=n--;
return s;
}
main()
{int i,j;
i=f(3);j=f(5);
printf("The output is:
");
printf("i=%d j=%d
",i,j);
}
29.#include<stdio.h>
int trans(int m,int n)
{int i;
if(m>n){
i=m%n;trans(m,n);}
else i=m:
if(i<10)printf("%d
",i):
else printf("%C".’A’+i-10):
}
main()
{int i;
printf("The output is:
");
printf("n%d
",-23);
trans(21,3);
printf("n%d
",123);
trans(123,16);
}
四、程序填充题,每空5分,共15分给出下列程序,将横线处缺少的部分补上,使其能正确运行。
30.将一个十进制整数转变成一个二进制整数。
#include<stdio.h>
main()
{int i=0.j,n,num[20];
scanf("%d",______);/*第一空*/
while(n!=0)
{num[i++]=______;/*第二空*/
n=______;)/*第三空*/
for(j=i-1;j>=0;j--)
printf("Ha",num[j]);
printf("
");
}
31.以下程序用来统计从终端输入的字符中大写字母的个数。以"$"作为输入结束标记。
#include<stdio.h>
#include<ctypc.h>
main()
{int num[126],i;char c;
for(i=0;i<26;i++)
num[i]=0;
while((______)!="$")/*第一空*/
if(isupper(c))num[c-65]+=1;
for(i=0;i<26;i++)
if(______)/*第二空*/
printf("%c:%d
",______,num[i]);/*第三空*/
}
32.输入5个字符,从中找出最大的并输出。要求用字符数组存放此字符,并用指针数组元素分别指向这5个字符。
#include<stdio.h>
main()
{char a[5],*p[5],*max;
int I;
for(I=0;I<5;I++)
______;/*第一空*/
for(I=0;I<5;I++)
scanf("%C",p[I]);
max=p[0];
for(I=0;______;I++)/*第二空*/
if(*max<*p[I])
______;/*第三空*/
printf("%c",*max);
}
五、程序设计题,每小题7.5分,共15分。
33.输出100以内所有个位数字为7且能被3整除的数。
34.一个二维数组int a[4][4],请将其填满并输出其四个边的元素。
延伸阅读
- 考前自救指南:希赛自考题库快速提分
- 自考专属刷题工具,刷题即提分!
- 最后9天,自考历年真题应该怎么刷?
- 自考备考一站式服务:希赛自考题库APP
- 0基础逆袭秘籍:希赛全套自考学习包(含智能题库)
- 避开备考误区!用希赛自考APP快速提分!
自考微信公众号
扫码添加
自考备考资料免费领取
去领取
扫描二维码