全国自考(高级语言程序设计)模拟试卷7
一、1.单项选择题
0. 下列关于变量赋值及表达式计算时的数据类型转换规则描述正确的是( )
A.变量赋值时数据类型转换规则是就长不就短,表达式计算时数据类型转换规则是就左不就右
B.变量赋值时数据类型转换规则是就左不就右,表达式计算时数据类型转换规则是就长不就短
C.变量赋值及表达式计算时的数据类型转换规则是具有强制性而不自动的
D.变量赋值及表达式计算时的数据类型转换规则是具有强制性而自动的
1. 下列不属于C语言标识符的是( )
A.abc
B.ABC
C.AB_C
D.2abc
2. 设有数据定义语句:float a,*pa=&a;,则下列选项错误的是( )
A.*&pa
B.&*pa
C.&*a
D.*&a
3. 字符串"save me!"在内存中所占用的字节数是( )
A.4
B.6
C.8
D.9
4. 下列程序执行后的输出结果是( ) main() {int x="C";printf("%d ","A"-x+3);)
A.1
B.2
C.3
D.5
5. 系统提供的文件尾测试函数是( )
A.feof()
B.fgectc()
C.fseek()
D.rewind()
6. 将字符串转换成浮点数的函数是( )
A.atof()
B.atoi()
C.stof()
D.stoj()
7. 以下程序的输出结果是( ) #define f(x)x*x main() {int a=6,c; c=f(a); printf("%d ",c); )
A.6
B.9
C.18
D.36
8. 已知程序清单如下( ) #include<stdio.h> main() {char c1,c2; scanf("%c,%c",&c1,&c2); switch(c1) { case "a":printf("100");break case "b": {switch(c2) {case"+":printf("90");break; case"-":printf("85");)break }break; } } 当输入"b,-"时,程序的输出结果是
A.100
B.90
C.85
D.不确定
9. 设int类型的数据长度为2个字节,则unsigned int类型的数据取值范围是( )
A.0~255
B.-256~255
C.0~65535
D.-32768~32767
10. 设charx="a",则printf("X=%c,y=%c ",x,97);的输出是( )
A.x=a,y=a
B.x=97,y=a
C.x=97,y=97
D.x=a,y=97
11. 以下程序的输出结果是( ) int d=1; fun(int p) { static int d=5; d+=P: printf("%d",d); return(d); } main() { int am=3; printf("%d ",fun(a+fun(d))): }
A.6 9 9
B.6 6 9
C.6 15 15
D.6 6 15
12. 若有以下说明和语句( ) struct worker{ int no; char *name; }work,*p=&work; 则以下引用方式不正确的是
A.work.no
B.(*p).no
C.p->no
D.work->no
13. 日期型结构date是由系统自动定义的,其所在的头文件是( )
A.stdio.h
B.dos.h,
C.date.h
D.stdlib.h
14. 执行下列程序后输出的结果是( ) #include<stdio.h> main() { int j,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 ",k,m); }
A.k=0,m=5
B.k=0,m=3
C.k=1,m=5
D.k=1,m=3
二、2.填空题
0. 设char strl[7]="ABCDEF",str2[5]="xyz";;则执行语句:
printf("%d",strlen(strcpy(str1,str2)));
后的输出是______。
1. 设char a,b;,则表达式a/"c"*b的值的类型为______。
2. 设for(k=0;k>0;k--)++k;,则该循环共执行______次。
3. 19,表示空类型的保留字是______。
4. 在C语言中,如果下面的变量都是int类型,则输出的结果是______。
sum=pad=5;
pad=sum++,pad++,++pad;
printf("%d
",pad);
5. 以下程序的输出结果是______。
#include
main()
{int i=010,j=10;
printf("%d,%d
",++i,j--);}
6. 已知在ASCⅡ代码中,字母A的序号为65,以下程序输出的结果是______。
#include<stdio.h>
main()
{char c1="A",c2="Y";
printf("%d,%d
",c1,c2);
}
7. 指针s所指字符串的长度为______。
char *s=""NameAddress
";
8. 以下程序运行后输出的结果是______。
main()
{int a=1,b;
for(b=1;b<=10;b++)
(if(a>=8)break;
if(a%2==1){a+=5;continue;}
a-=3:
}
printf("%d
",b);
}
9. 写出"n是小于整数m的偶数"的C语言表达式:______ 。
三、3.程序分析题
0. #include
long fun(int n)
{long s;
if(n<=2)s=2;
else s=n+fun(n-1);
printf("%d ",s);
return s;
}
main()
{
fun(5);
printf("
");
}
1. #include<stdio.h>
main()
{
int a[3][2]={{1,2},{3,4},{5,6}),i,j,s=0;
for(i=1;i<3;i++)
for(j=0;j<2;j++)
s+=a[i][j];
printf("%d
",s);
}
2. #include<stdio.h>
main()
{
int i;
for(i=0;i<3;i++)
switch(i)
{
case 0:printf("%d",i);
case 2:printf("%d",i);
default:printf("%d",i);
}
printf("
");
}
3. #include<stdio.h>
main()
{int a,b;
for(a=1,b=1;a<=100;a++)
{if(b>=20)break;
if(b%3==1)(b+=3;
continue;
}
b-=5;
}
printf("%d
",a);
}
四、4.程序填充题
0. 以下程序求a数组中的所有素数的和,函数isprime用来判断自变量是否为素数。素数是只能被1和本身整除且大于1的自然数。
#include<stdio.h>
int isprime(int x)
{int i,r=1;
for(i=2;i<=x/2;i++)
if(x%i==0){r=0;break;)
______;}/*第一空*/
main()
{int i,a[10],sum=0;
printf("Enter 10 nums:
");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(i=0;i<10;i++)
if(______)/*第二空*/(printf("%d",a[i]);
______;/*第三空*/
}
printf("
The sum=%d
",sum);
}
1. 下面程序的功能是调用函数fun计算:m=1-2+3-4+…+9-10,并输出结果。
#include<stdio.h>
int fun(int n)
{intm=0,f=1,i;
for(______;i<-n;i++)/*第一空*/
{m+=i*f;
f=______;/*第二空*/
}
return m;
}
main()
{printf("m=%d
",______);)/*第三空*/
2. 下面程序的功能是:先从键盘上输入一个3行3列矩阵的各个元素的值,然后输出主对角线之和。
#include<stdio.h>
main()
{
int a[3][3],sum;
int i,j;
______;/*第一空*/
for(i=0;i<3;i++)
for(______)/*第二空*/
scanf("%d",&a[i][j]);
for(i=0;i<3;i++)
sum=______;/*第三空*/
printf("sum=%d
",sum);
}
五、5.程序设计题
0. 从键盘上输入若干个正整数,求其中最大数和最小数,输入的数以0为终止标记。
1. 用下列公式计算π的值:
