自考《C语言程序设计》模拟试题一
1和C语言中的基本数据类型是_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _。
2.在C语言中,常用整数变量的类型描述符是_ _ _ _ _ _,占用内存_ _ _ _字节,有符号常用整数的数据范围是_ _ _ _ _。
3.机器中整数-35的补码表示为_ _ _ _ _。
4、执行下面的语句int a = 8;a+= a-= a * a;之后,a的值是_ _ _ _ _。
5.有以下语句:char a [] = {“我是学生”};字符串的长度是_ _ _ _ _,a [3] = _ _ _ _ _。
6.符号“a”和“a”的区别是_ _ _ _ _。
7.所谓“指针”就是_ _ _ _。“&”运算符的作用是_ _ _ _ _。“*”运算符的作用是_ _ _ _ _。
8.有以下输入语句:scanf ("A =% d,b=%d,c=%d ",& amp;一,& ampb & amp;c);为了使变量A的值1,B的值3,C的值2,从键盘输入数据的正确形式应该是_ _ _ _ _。
二、选择题
1,设整数变量A为5,使B不为2的表达式是()。
A.b = a/2b . b = 6-(——a)c . b = a % 2d . b = a & gt;3?2:1
2.为了避免嵌套条件分支语句if-else的二义性,C语言规定C程序中的else始终与()形成配对关系。
A.如果B具有相同的缩进位置。如果之前没有配对。
C.在它之前没有配对的最近的if D。如果在同一条线上
3.下列程序的输出是()。
int x=10,y = 10;
printf("%d %d\n ",x——,——y);
A.10 10 b . 9 9 c . 9 10d . 10 9
4.设A是存储(短)整数的一维数组。如果A的第一个地址是P,那么A中第I个元素的地址是()。
A.P+I * 2b . P+(I-1)* 2c . P+(I-1)d . P+I
5、选择下列标识符不合法的是()。
A.hot_do B. cat1 C. _pri D. 2ab
6、下列程序的输出是()。
int a = 5;
float x = 3.14;
a* = x *(E '-' A ');
printf("%f\n ",(float)a);
A.62.000000 b 62.800000 c 63.000000d 62
7.设置描述double(* p 1)[n];其中,标识符p1是()。
A.指向双变量的n个指针。
B.指向n个双变量的函数指针。
C.指向n个双精度元素的一维数组的指针。
D.具有n个指针元素的一维指针数组,每个指针元素只能指向一个双精度量。
8.C程序中有以下语句:char *func(int x,int y);它是()。
A.函数func的定义b .调用函数func。
C.函数func的原型描述。d .非法。
9、下列程序的输出是()。
char str[15]= "你好!";
printf("%d\n ",strlen(str));
A.15 B. 14 C. 7 D. 6
10,分析下列程序输出结果的是()。
主()
{int a=5,b=-1,c;
c =加法(a,b);
printf("%d ",c);
c =加法(a,b);
printf("%d\n ",c);}
int相加(int x,int y)
{static int m=0,n = 3;
n * = ++ m;
m = n % x+y++;
返回(m);}
A.2,3 B,2 C,3,2 D,2,4
11,下列描述不正确的是()。
字符串可以存储在字符数组中。
B.可以整体输入输出字符数组。
C.可以整体输入和输出整数数组。
D.不能通过赋值语句中的赋值运算符“=”将字符数组作为一个整体进行赋值。
12,下列程序的输出是()。
#定义f(x) x*x
主()
{int a=6,b=2,c;
c = f(a)/f(b);
printf("%d\n ",c);
}
A.9 B. 6 C. 36 D. 18
13有以下定义:int x=10,y=3,z;
语句printf ("%d \ n ",z=(x%y,x/y));的输出是()。
A.1 B
14.定义以下变量和数组:int I;;int x[3][3]={1,2,3,4,5,6,7,8,9 };
然后语句for(I = 0;我& lt3;i++) printf("%d ",x[I][2-I]);的输出是()。
A.1 5 9 B. 1 4 7 C. 3 5 7 D. 3 6 9
15,下列二维数组A初始化正确()。
A.int a[2][3]={{1,2},{3,4},{5,6 } };B. int a[ ][3]={1,2,3,4,5,6 };
C.int a[2][ ]={1,2,3,4,5,6 };D. int a[2][ ]={{1,2},{3,4 } };
16.运行以下程序两次。如果从键盘分别输入6和3,输出结果是()。
int x;
scanf("%d ",& ampx);
if(x++ & gt;5) printf("%d ",x);
else printf("%d\n ",x--);
A.7和5 B. 6和3 C. 7和4 D. 6和4。
17有以下定义:char * aa [2] = {"ABCD "," ABCD " };那么下列说法中正确的是()。
A)A)aa数分量的值分别为“abcd”和“ABCD”。
B)aa是一个指针变量,指向一个包含两个数组元素的一维字符数组。
C)C)aa数组的两个元素分别存储包含四个字符的一维字符数组的第一个地址。
D)字符“a”和“a”的地址存储在D)aa数组的两个元素中。
18,下列程序的输出是()。
char *p1="abcd ",*p2="ABCD ",str[50]= " XYZ ";
strcpy(str+2,strcat(p1+2,p2+1));
printf("%s ",str);
A.xyabcAB b . ABC abz c . ABabcz d . xycdBCD
19,下列程序的输出是()。
int a[5]={2,4,6,8,10},*P,* * k;
p = a;k = & ampp;
printf(" % d " ,*(p++));
printf("%d\n ",* * k);
A.4 4 B. 2 2 C. 2 4 D. 4 6
20.你不能把字符串:你好!分配给数组b的语句是()。
A.char b[10]={'H ',' e ',' l ',' l ',' o ','!'};
B.char b[10];b= "你好!";
C.char b[10];strcpy(b,“你好!”);
D.char b[10]=“你好!”;
第三,阅读程序问题
1、浮点数f = 3.1415927;
printf("%f,%5.4f,%3.3f ",f,f,f);
程序的输出是。
2、int x=6,y = 7;
printf("%d ",x++);
printf("%d\n ",++ y);
程序的输出是。
3、a = 3;
a+=(a & lt;1)?答:1;
printf("%d ",a);
结果是。
4、for (a=1,b = 1;a & lt=100;a++)
{ if(b & gt;=20)破;
if(b%3==1)
{ b+ = 3;继续;}
b-= 5;}
程序输出结果A的值是。
5、int y=1,x,*p,a[ ]={2,4,6,8,10 };
p = & ampa[1];
for(x = 0;x & lt3;x++)
y+= *(p+x);
printf("%d\n ",y);
程序输出结果y的值为。
第四,程序填空
1.从键盘输入数字10,求其平均值。
主()
{ int I;
float f,sum
for(i=1,sum = 0.0我& lt11;i++)
{ ;
;}
printf("average=%f\n ",sum/10);}
2.下面的过程是创建一个名为myfile的文件,并将从键盘输入的字符存储在该文件中,并在键盘输入完成时关闭该文件。
#包括
主()
{ FILE * fp
char c;
FP =;
做{
c = getchar();
fputs(c,FP);
}while(c!= EOF);
}
3.下面这个程序的作用是从键盘输入几个学生的分数,统计并输出分数和最低分,当输入一个负数时结束输入。请填空。
主()
{ float x,amax,amin
scanf("%f ",& ampx);
amax = x;Amin = x;
while()
{ if(x & gt;amax)amax = x;
if()Amin = x;
scanf("%f ",& ampx);}
printf(" \ namax = % f \那敏=%f\n ",amax,Amin);}
五、编程问题
1.键盘输入三个整数A、B、C,输出其中一个。
2.输出从1900到2000的所有闰年。三年换一行。(判断闰年的条件是以下之一:能被4整除,但不能被100整除。或者能被400整除。)
3.请补一个函数int fun(int a),函数的作用是判断A是否是素数,如果A是素数,返回1;如果不是质数,则值为0。主函数从键盘上读取一个。
4.有n个学生,每个学生的信息包括学号、性别、姓名、四门课程的成绩。从键盘输入n个学生的信息,输出总平均成绩的学生信息,包括学号,性别,姓名,平均成绩。