全国自考(高级语言程序设计)模拟试卷8
一、1.单项选择题
0. 在函数内定义变量时,存储类型符可省略的是
A.static
B.extern
C.auto
D.register
1. 以下运算符中,优先级最低的是
A.&&
B.&
C.&=
D.=
2. 下列说法中正确的是
A.字符" "是字符串的结束标记
B.字符"0"是字符串的结束标记
C.字符"o"是字符串的结束标记
D.字符"o"是字符串的结束标记
3. 若当前文件目录为C: c,在C语句中下列能表示文件tc.c的是
A.tc.c
B.C:tc c.c
C.C c c.c
D.C c.c
4. 在定义了数组int a[6][10]之后,对数组元素的引用不正确的是
A.*(a[6]+2)
B.a[6][8]
C.*(&a[6][1]+4)
D.&a[6]+5
5. 以下程序输出的结果是 #include<stdio.h> int fun(int k) {if(k>0)fun(k-1); printf("%d",k); } main() {int w=3;fun(w); printf(" "); }
A.3 2 1 0
B.0 1 2 3
C.2 1 0
D.0 1 2
6. 下面程序段执行后输出的结果是( ) #include<stdio.h> main() {int i; for(i=1;i<8;i++) {{if(i%3){printf("*");continue;}} printf("#"); } printf(" "); }
A.*#**#**#
B.**#**#*
C.*#**#**
D.**#**
7. 下面程序段执行后输出的结果是( ) #include<stdio.h> main() {int a[2][2]={{1,2),{5,7)),*P,i; p=&a[0][0]; for(i=0;i<2;i++) "P++=i+1: printf("%d",*(p-2)); }
A.1
B.2
C.5
D.7
8. 设char *s="china";则printf("%s,%c,%c ",s,*s,s[3]);的输出是( )
A.china,c,n
B.china,china,i
C.c,c,n
D.china,china,n
9. 若x为int型变量,则执行以下语句后,x的值为( ) x=6; x=+x-=x*x
A.6
B.-24
C.36
D.-60
10. fgetc函数是作为一个从指定文件读入一个字符的函数,下列有关描述正确的是( )
A.只能读二进制文件
B.只能读文本文件
C.其参数是一个指针变量
D.其参数是一个字符串
11. 下列语句中把P定义为一个文件指针的是( )
A.FILE *P
B.FILE p
C.file P
D.file *P
12. 在C语言中,被视为程序模块的是( )
A.语句
B.行语句
C.程序语句块
D.函数
13. 下列关于continue和break的描述正确的是( )
A.continue只能用于循环体中
B.break只能用于循环体中
C.continue只是一个语句标记
D.break只能用于switch语句块中
14. 下列关于if和else的配对规则描述正确的是( )
A.else总是和前面最远的if配对
B.else总是和前面最近的if配对
C.if和else的配对按程序缩进格式进行
D.else可以和前面所有的if配对
二、2.填空题
0. 可以将被调函数中获得的值返回主调函数的语句是______。
1. 设int x=2,y=1;则表达式x---y的值是______。
2. 外部静态变量的作用域是______。
3. 函数调用时,若实参为一个确定的值,则函数参数的传递方式是______。
4. 设int a[2][3]={2,4,6,8,10,12);,则数组元素a[1][0]的值是______。
5. 设int a,b,c;,则执行a=(b=3,c=4,a=5,b=8);之后变量a的值是______。
6. 22.以下程序的输出结果是______。
#include<stdio.h>
main()
{int a,b,d=241;
a=d/100%9;/*"/"和"%"的优先级相同,先进行"/运算"*/
b=(-1)&&(-1;/*b所获得的是逻辑值。*/
printf("%d,%d
",a,b);
}
7. 以下程序的输出结果是______。
#include<stdio.h>
main()
{int i;
for(i=1;i<=5;i++)(if(i%2)printf("*");
else continue;
printf("#");
}
printf("$
");
}
8. 以下由for语句构成的循环执行了______次。
#itielude<stdio.h>
#define N 2
#deftne M N+1
#define NUM(M+1)*N/2
main()
{int i,n=0;
for(i=1;i<=NUM;i++)
{n++;printf("%d",n);}
printf("
");}
9. 表达式"sizeof(double)"的值的类型是______。
三、3.程序分析题
0. #include<stdio.h>
void fun(int m,int n,int ar[][4],int*bar)
{
int i,j,x;
for(i=0;i<3;i++)
{x=ar[i][0];
for(j=0;j<3;j++)
bar[i]=X;
}
}
main()
{int a[3][4]={{12,41,36,28},{19,33,15,27},{3,27,19,1)},b[3],i;
fun(3,4,a,b);
for(i=0;i<3;i++)printf("%4d",b[i]);
printf("
");
}
1. #include<stdio.h>
void swap(int x,int y)
{int t;
t=x;x=y;y=t;
printf("%d%d",x,y);
}
main()
{int a=3,b=4;
swap(a,b);
printf("%d%d
",a,b);
}
2. #include<stdio.h>
main()
{char *a="12134211";
int v1=0,v2=0,v3=0,v4=0,k;
for(k=0;k<=strlen(a);k++)
switch(*a++)
{default:v4++;
case"1":v1++;
case"3":v3++;
case"2":v2++;)
printf("v1=%d,v2=%d,v3=%d,v4=%d
",v1,v2,v3,v4);}
3. #include<stdio.h>
int fun(int h)
{static int a[3]={1,2,3);
int k;
for(k=0;k<3;k++)a[k]+=a[k]-h;
for(k=1;k<3;k++)printf("%d ",a[k]);
return(a[h]);
}
main()
{int t=1;fun(fun(t));}
四、4.程序填充题
0. 输入一个字符串,(换行为结束标志)统计数字(0~9不单独统计)、空白和其他字符出现的次数。
#include<stdio. h>
main()
{char C;
int______;/*第一空*/
while((c=getchar())!="
")
{if(______)/*第二空*/
digit++;
else if(c=="||c==" ")++blank;
else______;/*第三空*/
}
printf("digit=%d,blank=%d,other=%d",digit,blank,other);
}
1. 下面程序的作用是求以下算式中X、Y、Z的值,请在"______"处填入正确的内容。
main()
{int X,Y,Z,j,result=768;
for(x=0;______;x++) /*第一空*/
for(y=0;y<10;y++)
for(z=0;z<10;z++)
{j=( )+(100*y+10*z+z); /*第二空*/
if(______) /*第三空*/
printf(”X=%d,Y=%d,Z=%d
”,x,y,z);
}
2. 在C盘根目录下创建一个名为”c. txt”的文本文件,文本文件的内容从键盘读取,直到遇到"
"(回车键)为止。程序清单如下:
#include<stdio.h>
#included<______>/*第一空*/
void main()
{FILE *fp;
char c;
if((fp=fopen("C:c.txt","______"))==NULL)/*第二空*/
{printf("can not open file!
");exit(0);)
while((______)!=="
")/*第三空*/
fput(c,fp);
fclose(fp);
}
五、5.程序设计题
0. 从a盘根目录下名为"string. txt"的文本文件读取前20个字符组成字符串在屏幕上显示输出。
1. 编写一个程序,用循环结构输出以下图形。

