自考高级语言程序设计模拟题
    第一部分  选择题(20分)
一、单项选择题(本大题共20小题,每小题1分,共20分)
在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的
括号内。错选、多选或未选均无分。
1.组成C语言程序的是(    )
A.过程  B.函数    C.子程序  D.主程序和子程序
2. 下列表达式的值为0的是 (  )A. 3﹪5B. 3/5.0C. 3/5D. 3<5
3.C语言中定义某个内部变量时,如果省略了存储类型符,则系统将默认该变量是(    )A.自动型  B.寄存器型  C.静态型  D.外部参照型
enum c++
4. 设int a = 3;则表达式a<1&& - - a>1的运算结果和a的值分别是 (  )
A. 0和2  B. 0和3  C. 1和2    D. 1和3
5.自动型变量分配在(    )
A.内存的数据区中    B.CPU的通用寄存器中
C.内存的程序区中    D.内存的堆栈区中
6. 下列保留字中用于构成循环结构的是 (  )A. ifB. whileC. switchD. default
7.对do-whie语言错误的说法是(    )
A.可构成多重循环结构   
B.循环次数不可能为0
C.循环次数可能为0
D.先执行后判断
8.设 char x =′a′;则printf(″x = ﹪c, y = ﹪c \\ n″,x,97);的输出是(  )A. x = a,y = 97B. x = 97,y = aC. x = 97,y = 97D. x = a,y = a
9.设char str1[10]=″ABCDE″,str2[10]=″XYZ″;则执行语句:
      printf(″%d″,strlen(strcpy(str1,str2)));
后的输出是(    )
A.3
B.5
C.8
D.9
10. 执行下列程序int a[3][3]={{1},{2},{3}};int b[3][3]={1,2,3};main(){printf(″﹪d \\ n″,a[1][0] + b[0][0]);}后输出的结果是 (  )  A. 0  B. 1  C. 2  D. 311.语句int (*p)(  );的含义是(    )
A.p是一个指向函数的指针变量,该函数的返回值是一个整型数据
B.p是指针变量,指向一个整型数据
C.p是一个指向一维数据的指针变量
D.p是指针函数
12. 设int x[] = {1,2,3,4,5,6},* p = x;则值为3的表达式是 (  )A. p + = 2, * + + pB. p + = 2, * p + +C. p + = 3, * pD. p + = 2, + + * p
13.对于程序段     
float f1(int a)
{int b;…}
main( )
{int m,n;
m=f1(n);…}
char f2(int x,int y)
{int a;…}
变量m,n的作用范围是(    )
A.整个程序段
B.main函数
C.main函数和f2函数
D.mian函数和f1函数
14. 执行下列程序int a = 3, b = 4;void fun(int x1, int x2){printf(″﹪d, ﹪d \\ n″, x1 + x2, b);}main(){int a = 5, b = 6;fun(a, b);}后输出的结果是 (  )  A. 3,4  B. 11,1  C. 11,4  D. 11,615.在下列运算符中,优先级最低的是(    )
A.!
B.·
C.( )
D.[ ]
16. 设有定义语句:enum t1 {a1, a2 = 7, a3, a4 = 15}time;则枚举常量a2和a3的值分别为 (  )  A. 1和2  B. 2和3  C. 7和2  D. 7和817.对于文件操作方式″rb+″,准确的说法是(    )
A.可读写文本文件
B.只读二进制文件
C.只读文本文件
D.可读写二进制文件
18. 在文件使用方式中,字符串″rb″表示 (  )A. 打开一个已存在的二进制文件,只能读取数据B. 打开一个文本文件,只能写入数据C. 打开一个已存在的文本文件,只能读取数据D. 打开一个二进制文件,只能写入数据
19.设int a=1,b=2,c=4;
经过表达式(c=a!=b)&&(a= =b)&&(c=b)运算后,a、b和c的值分别是(    )
A.1,2,0
B.1,2,1
C.1,2,2
D.1,2,3
20. main()函数可以带两个形参,一般分为argc和argv,其中argv可以定义为(  )A. int argv;B. char * argv[];C. char argv[];D. char ** argv[];第二部分  非选择题(共80分)
二、填空题(本大题共10小题,每小题2分,共20分)
请在每小题的空格中填上正确答案。错填、不填均无分。
21.设char a,b;则表达式a/b-′c′的值的类型为      。
22.设int k=-1;执行printf(″%u″,k);后输出的值是      。
23.设for(k=0;k<0;k++)++k;则该循环共执行      次。
24.设int a =1,b=2;经表达式a=a∧b,b=a∧b,a=a∧b运算后a,b的值分别是      。
25.表示空类型的保留字是      。
26. 被调函数在执行结束时,这个函数中定义的_______________类型的变量不被释放。27. 设struct student{int no;char name[12];float score[3];} sl,* p = &sl;用指针法给sl的成员no赋值1234的语句是___________________。28. C语言程序中对文本文件的存取是以________________为单位进行的。29. 设char string[] =″This_is_a_book!″;则数组的长度应是________________。30. 设int a[2][3] = {{2},{3}};则数组元素_____________________的值为3。三、程序分析题 (本大题共5小题,每小题5分,共25分)
阅读下列程序,将输出结果写到各题右侧的空白处31.
int a = 200;main(){int i;for(i = 1;i< = 5;i + +){a + + ;printf(″﹪d,″,a);s()}{s(){static int a = 20;a + + ;printf(″﹪d \\ n″,a);}32.
# include ″stdio.h″main(){char c;c = getchar();if((c> =′a′&&c< =′z′) ‖c> =′X′&&c< =′Z′)c = c - 23;printf(″﹪c \\ n″,c);}设从键盘上输入Next ↙33.
# define N 7main(){int i,j,temp,a[N]={1,2,3,4,5,6,7};for(i = 0;i
sub(x,y)
{ y=x>y?x:y;
return y;
}
main( )
{
{int x=100;
printf(″%d\\n″,sub(x,y));
}
printf(″%d,%d\\n″,x,y);
}
35.设文件file1.c的内容为COMPUTER
#include ″stdio.h″
main( )
{ FILE *fp;
char ch;
if((fp=fopen(″file1.c″,″r″))= =NULL)
{ printf(″Cannot open file \\n″);
exit(0);
}
while(!feof(fp))
{
ch=fgetc(fp);if(ch>=′A′&&ch<=′Z′)fputc(ch+32,stdout);
}
fclose(fp);
}
四、程序填充题(本大题共3小题,每小题6分,共18分)
给出下列程序,将横线处缺少的部分补上,使其能正确运行。
36.将一个十进制整数n转变为二进制数。
main( )
{ int i=0,j,n,num[20];
scanf(″%d″,      );  /*第一空*/
while(n!=0)
{ num[i++]=      ;    /*第二空*/
n=      ;  /*第三空*/
}
for(j=i-1;j>=0;j--)printf(″%d″,num [j]);
}
37.一个一维数组和一个二维数组同处一个共用型,将数据输入一维数组后,在二维数组中输出。
main( )
{union data
{ int a[10];
int b      ;/*第一空*/
};
union data ab;
int i,j;
for(i=0;i<10,i++)
scanf(″%d″,      );  /*第二空*/
for(i=0;i<2;i++)
for(j=0;j<5;j++)
printf(″%5d″,      );/*第三空*/
}
38. 先为数组a输满数据,再为x输入一个数据,在数组a中出第一个与x相等的元素并将其下标输出,若不存在这样的元素,则输出“Not found!”标志。main(){int i,x,a[10];for(i = 0;i<10;i ++ )scanf(″﹪d″,___________);scanf(″﹪d″,&x);printf(″﹪d″,x);for(i = 0;i<10;i ++) if(_________________)break;if (i _________10)printf(″ position:﹪d \\ n″,i);else printf(″Not found! \\ n″,x);}
五、程序设计题(第39小题5分,第40、41小题各6分,共17分)
39.输出100之内所有个位数字为6且能被3整除的自然数。(如:36,66,96……)
40. 求1到100之间的奇数之和及偶数之和,并将二者输出。
41. 输入一字符串,检查是否回文 (回文是指正反序相同,如,LeveL),若是则输出“Yes”,否则输出“No”。
模拟试题(一)参考答案

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。