C语言模拟题
- 格式:doc
- 大小:66.50 KB
- 文档页数:6
C 语言程序设计模拟题
一、选择题(共15分,每题 1分 )
1.C
以下叙述中,正确的是 。
A. 在C程序中,main函数必须位于程序的最前面
B. C程序的每一行只能写一条语句
C. C语言本身没有输入输出语句
D. 在对一个C程序进行编译的过程中,可发现注释中的拼写错误
2.A
while循环为当型循环,其特点是 。
A. 先判断表达式,后执行语句
B. 先执行语句,后判断表达式
C. 只判断表达式
D. 直接执行语句
3. B
设有变量定义char str[80]; 下列 语句能将字符串“shanghai 2011”从键盘输入到数组变量str中。
A. printf("%s",str);
B. gets(str);
C. scanf("%s",str);
D. puts(str);
4. B
循环语句中,continue语句的作用是 。
A. 终止程序
B. 结束本次循环
C. 从本循环体内跳出
D. 跳出子函数
5. B
下列 语句定义p为指向double类型变量x的指针。
A. double x, *p=x;
B. double x, *p=&x;
C. double *p=&x , x;
D. double x, p=x;
6. D
下面四个程序段中,不能输出23个*号的程序段是 。
A. for(int i=0; i<23; i++) putchar(„*‟);
B. for(int j=23; j>0; j--) putchar(„*‟);
C. int k=23; while(k>0) {putchar(„*‟); k--;}
D. int i=0; while(i>23) {putchar(„*‟); i++;}
7. B
以下对结构体变量stu1中成员age的非法引用是 。
stuct student
{
int age;
int num;
}stu1, *p=&stu1;
A. stu1.age
B. student.age
C. p->age
D. (*p).age
8. D
设有变量定义 int x, a=3, b=4; 则语句 x=(a=0)&&(b=8); 执行之后各变量的值为 。
A. x=0, a=0, b=8
B. x=1, a=3, b=4
C. x=1, a=0, b=8
D. x=0, a=0, b=4
9.A
下列标识符中,不合法的标识符为: 。
A. a#b
B. _int
C. a_10
D. Pad
10. C
若希望A的值为奇数时,表达式的值为“真”,A的值为偶数时,表达式的值为“假”,则以下不能满足要求的表达式是 。
A. A%2==1
B. !(A%2==0)
C. !(A%2)
D. A%2
11. D
为了判断两个字符串s1和s2是否相等,应当使用_____。
A. if (s1==s2 )
B. if (s1 = s2 )
C. if ( strcpy (s1,s2 ) )
D. if ( strcmp( s1,s2) == 0 )
12.B
以下程序段的输出结果为: 。
for ( i=4; i>1;i-- )
for ( j=1; j
putchar(„#‟);
A. #
B. ######
C. ##
D. ###
13. B
设x,y和z是int 型变量,且x=3,y=4,z=5,则下面表达式中值为0的是 。
A. y && „y‟
B. x==y && y!=z
C. x||y+z && y-z
D. !(x
14. D
若有变量定义:int a[4], *p=a; 则以下对数组a的元素不正确的引用是_____。
A. *a
B. *(p+1)
C. p[1]
D. a[4]
15. C
设有以下结构体定义及初始化,表达式(stu[0].score+stu[1].score)/2的结果是_______。
struct student
{
int num;
float score;
} stu[2]={90,91.5,93,92.5};
A. 91.0
B. 91.5
C. 92.0
D. 92.5
二、填充题(共 26 分,每题 2分)
1、表达式strlen (“C2009”) 的值是___5___
2、设a=2,b=3,x=3.5,y=2.5, 表达式(float)(a+b)/2+(int)x%2/4 的值为 2.5
3、下面这些运算符中 :%, /, + ,* ,要求运算量是整型的是 %
4、已知: int i=0, j=10, k; 完成 下列循环后,k的 值是 10
for ( ;i<=j; i++,j--) k=i+j;
5、已知:int a=5; ,计算表达式 a-=a*=a+=a/a 后,变量 a的值 是 0
6、已知:int a=2; ,表达式 a%2+(a=5) 的值 是 5
7、下列运算符中: !, +=, &&, %=, || , 优先级相同的是 +=, %=
8、已知 : int a=1, b=0, c=1; 计算表达式 !b||++a&&++c的值后,c的值是 1
9、下列函数 fun() 被调用了 3次,a的值 是 4
fun()
{
static int a=1;
++a;
}
10、在下列调用函数中,实参的个数是 3
fun( a1, (a2,a3),(a4,a5,a6));
11、下列结构变量 m的成员 a 的表示应该是 m.a
struct xy
{
int a;
double b;
}m;
12、已知: char a[]=”abcde”,*p=a; 表达式 *(p+5)的值 为 „\0‟
13、函数double fun(double x,int n) 的功能是计算xn,则调用fun函数计算 m=a4+b4-(a+b)3的函数调用语句为 m=fun(a,4)+fun(b,4)-fun(a+b,3) 。
三、程序填空(共 30分,每空 3分 )
1. 程序完成以下功能:对x=1,2,...,10,求函数f(x)=x-10cos(x)-5sin(x)的最大值,并将该值写到新建文件data.txt中。
#include
#include
void main()
{ FILE *p;
float f(float),max,x;
if((p=fopen("_______ ","w"))==NULL) //答案:data.txt
{ printf("cannot open FILE\n"); exit(0); }
max=f(1);
for(x=2;x<=10;x++)
if(______
max=f(x);
fprintf(p,"%.3f",max);
fclose(_______); //答案:p
}
float f(float x)
{ _______; //答案:double y 或 float y
y=x-10*cos(x)-5*sin(x);
return y;
}
2. 查找100至999之间所有符合以下条件的数:它是另一数的平方,且至少有两位数是相同的。如数144,它是12的平方,其中有两位4。
int main()
{
int n,m,a,b,c;
for ( n = 10; n <= 31; n++ )
{
___________________ //答案:m = n*n;
a=m%10;
b = m / 10 % 10;
c = m / 100 % 10;
___________________ //答案: if ( a= =b || b= =c || a= =c )
printf( "%d ", m );
}
return 0;
}
3. 函数 void fun(float *sn,int n)的功能是:根据以下公式计算S,计算结果通过形参指针sn传回。要求n通过形参传入,n>=0。请填空。
121...7151311nS
void fun(float *sn,int n)
{
float s=0.0,w,f= -1.0;
int i=0;
for ( i=0; i<=n; i++ )
{
f= *f; //答案:-1
w=f/(2*i+1);
s+=w;
}
=s; //答案: *sn
}
4. 统计字符换str中字符'#'与数字字符的个数。
#include
#include
main()
{
char str[81];
___________________ //答案: int n1=0,n2=0;
gets(str);