二级C语言分类模拟题543
(总分64,考试时间90分钟)
选择题
1. 有以下程序:
#include<stdio.h>
#include<stdlib.h>
void fun(double*p1,double*p2,double*s)
{s=(double*)calloc(1,sizeof( double));
*s=*p1+*(p2+1);
}
main()
{ double a[2]={1.1,2.2},b[2]={10.0,20.0},*s=a;
fun(a,b,s);
printf("%5.2f\n",*s);
}
程序运行后的输出结果是______。
A. 21.10        B. 11.10
C. 12.10        D. 1.10
2. 以下关于C语言函数参数传递方式的叙述正确的是______。
A. 数据只能从实参单向传递给形参
B. 数据可以在实参和形参之间双向传递
C. 数据只能从形参单向传递给实参
D. C语言的函数,参数既可以从实参单向传递给形参,也可以在实参和形参之间双向传递,可视情况选择使用
3. 以下选项中关于C语言常量的叙述错误的是______。
A. 所谓常量,是指在程序运行过程中,其值不能被改变的量
B. 常量分为整型常量、实型常量、字符常量和字符串常量
C. 常量可分为数值型常量和非数值常量
D. 经常被使用的变量可以定义成常量
printf函数输出整数时不能使用4. 有以下程序:
#include<stdio.h>
void f(int x[],int n)
{ if(n>1)
{ printf("%d,",x[0]);
f(&x[1],n-1);
printf("%d,",x[0]);
}
else
printf("%d,",x[0]);
}
main()
{ int z[3]={4,5,6};
f(z,3);
printf("\n");
}
程序运行后的输出结果是______。
A. 6,5,4,6,5,4,        B. 4,5,6,5,4,
C. 4,5,6,4,5,6,        D. 6,5,4,5,6,
5. 以下不合法的数值常量是______。
A. 011        B. le1
C. 8.0E0.5        D. 0xabcd
6. 一间宿舍可住多个学生,则实体宿舍和学生之间的联系是______。
A. 一对一        B. 一对多
C. 多对一        D. 多对多
7. 以下选项中不能用作C程序合法常量的是______。
A. 1.234        B. "\123"
C. 123        D. "\x7D"
8. 以下C语言用户标识符中,不合法的是______。
A. _1        B. AaBc
C. a_b        D. a--b
9. 有以下程序:
#include <stdio.h>
#include <math.h>
main()
{
int a=1, b=4, c=2;
double x=10.5, y=4.0, z;
z = (a+b)/c + sqrt(y) * 1.2/c + x;
printf("%f\n", z);
}
程序运行后的输出结果是______。
A. 13.700000        B. 14.000000
C. 15.400000        D. 14.900000
10. 若整型变量a、b、c、d中的值依次为:1、4、3、2。则条件表达式a<b?a:c<d?c:d的值是____。
A. 1        B. 2
C. 3        D. 4
11. 下面的程序在编泽时产生错误,其出错原因是____。
#include<stdio.h>
main()
{int 1_case;float printF;
printf("请输入2个数:");
scanf ("%d%f",&1_case,&printF);
printf("%d%f\n",1_case,printF);
}
A. 定义语句出错,1_case不能作为变量名
B. 定义语句出错,printF不能用作用户自定义标识符
C. 定义语句无错,scanf不能作为输入函数使用
D. 定义语句无错,printf不能输出1_case的值
12. 下面描述中,不属于软件危机表现的是______。
A. 软件过程不规范        B. 软件开发生产率低
C. 软件质量难以控制        D. 软件成本不断提高
13. 设计软件结构是在软件生命周期的____。
A. 软件定义期        B. 软件开发期
C. 软件维护期        D. 以上3个都不是
14. 有以下程序:
#include <stdio.h>
main()
{int a[]={1,2,3,4},y,*p=&a[3];
--p;y=*p;printf("y=%d\n",y);
}
程序的运行结果是______。
A. y=0        B. y=1
C. y=2        D. y=3
15. 下述程序的输出结果是______。
#include<stdio.h>
void main()
{char a=1,b=2;
char c=a^b<<2;
printf("\n%d",c);}
A. 9        B. 10
C. 12        D. 2
16. 有以下程序:
#include<stdio.h>
#include<string.h>
main( )
{ char str[ ]={"Hello,Beijing"};
printf("%d,%d\n",strlen(str),sizeof(str));
}
程序的运行结果是______。
A. 13,13        B. 13,14
C. 13,15        D. 14,15
17. 设x,y,z均为实型变量,代数式在C语言中的正确写法是
A. x/y*z        B. x%y%z
C. x/y/z        D. x*z/y
18. 下列数据结构中,能用二分法进行查的是______。
A. 顺序存储的有序线性表        B. 线性链表
C. 二叉链表        D. 有序线性链表
19. 阅读下面程序,程序执行后的结果为______。
#include "stdio.h"
main()
{char *str="abcdefghijklmnopq";
while(*str++!="e");printf("%c\n",*str);}
A. .f        B. .a
C. .e        D. .q
20. 软件生命周期中的活动不包括______。
A. 市场调研        B. 需求分析
C. 软件测试        D. 软件维护
21. 下列叙述中正确的是______。
A. 调用printf函数时,必须要有输出项
B. 使用putchar函数时,必须在之前包含头文件stdio.h
C. 在C语言中,整数可以以二进制、八进制或十六进制的形式输出
D. 调节getchar函数读入字符时,可以从键盘上输入字符所对应的ASCII码
22. 有以下程序
#include<stdio.h>
main()
{
int i;j;
for(i=1;i<4;i++)
{
for(j=i;j<4;j++)printf("%d*%d=%d",i,j,i*j);
printf("\n");
}
}
程序运行后的输出结果是______。
A. 1*1=1 1*2=2 1*3=32*2=4 2*3=63*3=9
B. 1*1=1 1*2=2 1*3=32*1=2 2*2=43*1=3
C. 1*1=11*2=2 2*2=41*3=3 2*3=6 3*3=9
D. 1*1=12*1=2 2*2=43*1=3 3*2=6 3*3=9
23. 下面描述中,不属于软件危机表现的是______。
A. 软件过程不规范        B. 软件开发生产率低
C. 软件质量难以控制        D. 软件成本不断提高
24. 有以下程序
#include<stdio.h>
#include<string.h>
struct A
{
int a;
char b[10];
double c;
};
void f(struct A t);
main()
{
struct A a={1001,"ZhangDa",1098.0};
f(a);
printf("%d,%s,%6.1f\n",a.a,a.b,a.c);
}
void f(struct A t)
{
t.a=1002;
strcpy(t.b,"ChangRong");
t.c=1202.0;
}
程序运行后的输出结果是______。
A. 1002,ChangRong,1202.0
B. 1001,ZhangDa,1098.0
C. 1001,ChangRong,1098.0
D. 1002,ZhangDa,1202.0
25. 以下程序的输出结果是______。
main()
{ int i,j,m=0;
for (i=1;i<=15;i+=4)
for(j=3; j<=19; j+=4) m++;
printf("%d\n",m);
}
A. 12        B. 15
C. 20        D. 25
26. 有以下程序
#define F(X,Y)(X)*(Y)
main()
{ int a=3,b=4;
printf("%d\n",F(a++,b++));
}
程序运行后的输出结果是______。
A. 12        B. 15
C. 16        D. 20
27. 有以下程序:
#include<stdio.h>
main()
{int a[5]={1, 2, 3, 4, 5}, b[5]={0, 2, 1, 3, 0}, i, s=0;
for(i=0; i<5; i++) s=s+a[b[i]];
printf("%d\n", s);
}
程序运行后的输出结果是______。
A. 6        B. 10
C. 11        D. 15
28. 以下不能将s所指字符串正确复制到t所指存储空间的是______。
A. do{*t++=*s++;}while(*s);
B. for(i=0; t[i]=s[i]; i++);
C. while(*t=*s){t++; s++;}
D. for(i=0, j=0; t[i++]=s[j++]; );
29. 下列叙述中错误的是______。
A. 可以给指针变量赋一个整数作为地址值