二级C语言分类模拟题561
(总分47.5,考试时间90分钟)
选择题
1. 有以下程序
int f1(double a)
{return a*a;}
int f2(int x,int y)
{double a,b;
a=f1(x);
b=f1(y);
return a+b;
}
main()
{double w;
w=f2(2.1,4.0);
)
变量w的值是______。
A. 20.21        B. 20
C. 20.0        D. 0.0
2. 若变量已正确定义,下列正确的程序段是____。
A. while(ch=getchar()=="\N")putchar(ch);
B. while((ch=getchar())=="\n")putchar(ch);
C. while((ch=getchar())!="\N")putchar(ch);
D. while((ch=getchar())!="\n")putchar(ch);
3. 下列叙述中错误的是______。
A. 一个C语言程序只能实现一种算法
B. C程序可以由多个程序文件组成
C. C程序可以由一个或多个函数组成
D. 一个C函数可以单独作为一个C程序文件存在
4. 以下选项中错误的是 ____
A. char *sp; gets(sp);
B. char sp[5] gets(sp);
C. char *sp="12345"; gets(sp);
D. charsp[5]="\0" gets(sp)
5. 以下程序段中,不能实现条件“如果a<b则x=10,否则x=-10”的是______。
袁成杰和戚薇结婚了A. x=(a>=b)?-10:10;
B. if(a<b)x=10;else x=-10;
王丽坤曝伦敦写真C. x=-10;if(a<b)x=10;
D. if(a<b)x=10;if(b<a)x=-10;
6. 有以下程序段
int i, n;
for(i=0; i<8; i++)
{ n=rand()%5;
switch(n)
{case 1:
case 3:printf("%d\n", n); break;
case 2:
case 4:printf("%d\n", n); continue;
case 0:exit(0);
}
printf("%d\n", n);
}
以下关于程序段执行情况的叙述,正确的是______。
A. 当产生的随机数n为4时结束循环操作
B. 当产生的随机数n为0时结束程序运行
C. 当产生的随机数n为1和2时不做任何操作
D. for循环语句固定执行8次
7. 算法的有穷性是指______。
A. 算法程序的运行时间是有限的        B. 算法程序所处理的数据量是有限的
C. 算法程序的长度是有限的        D. 算法只能被有限的用户使用
8. 以下选项中,合法的数值型常量是______。
A. 3.2        B. "X"
C. 099        D. 0xEH
9. 若函数调用时的实参为变量时,以下关于函数形参和实参的叙述中正确的是______。
A. 函数的形参和实参分别占用不同的存储单元
B. 形参只是形式上的存在,不占用具体存储单元
C. 同名的实参和形参占同一存储单元
D. 函数的实参和其对应的形参共占同一存储单元
10. 计算机能直接执行的程序是______。
A. 源程序        B. 目标程序
C. 汇编程序        D. 可执行程序
11. 有以下程序,最后输出的值为______。
main()
{ int a[4][4] ={8 6,5,7}, {3,7,2,5}, {4,8,6,1}}, i, j, k, t;
for(i=0; i<4; i++)
for(j=0; j<3; j++)小产权房 房产证
for(k=j+i; k<4; k++
if(a[j][i]>a[k][i])
{ t=a[j][i]; a[j][i]=a[k][i]; a[k][i]=t;}
for(i=0; i<4; i++) printf("% d,", a[i][i]);
}
A. 1,6,5,7        B. 8,7,3,1
C. 4,7,5,2        D. 1,6,2,1
12. 以下叙述中错误的是______。
A. 在一个程序中,每个模块均可以独立编译运行
B. 程序“模块化”有利于任务的分解简化
C. 允许对函数单独进行编译,是C语言实现“模块化”的基础
D. 采用模块化结构,可以提高编程效率
13. 在数据结构中,从逻辑上可以把数据结构分为______。
A. 动态结构和静态结构        B. 紧凑结构和非紧凑结构
C. 线性结构和非线性结构        D. 内部结构和外部结构
14. 有以下程序
#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
15. 有下列程序:
#include<stdio.h>
main()
{ int a=6, b=7, m=1;
switch(a%2)
{ case 0: m++; break;
case 1: m++;
switch(b%2)
{default: m++;
case 0: m++; break;
}
}
printf("%d\n", m);
}
程序的运行结果是______。
A. 3        B. 2
C. 4        D. 1
16. 有以下程序(注:字符a的ASCII码值为97):
#include<stdio.h>
main()
{char *s={"abc"};
do
{printf("%d", *s%10); ++s;}
while(*s);
}
程序运行后的输出结果是______。
A. abc        B. 789
C. 7890        D. 979899
17. 下列程序中函数sort()的功能是对数组a中的数据进行由大到小的排序。
#include<stdio.h>
void sort(int a[], int n)
{ int i, j, t;
for(i=0; i<n-1; i++)
for(j=i+1+1; j<n; j++)
if(a[i]<a[j])
{t=a[i]; a[i]=a[j]; a[j]=t;
}
}
main()
{int a[10]={1, 2, 3, 4, 5. 6, 7, 8, 9, 10}, i;
sort(&a[1], 7);
for(i=0; i<10; i++)printf("%d, ", a[i]);
}
程序运行后的输出结果是______。
A. 1,2,3,4,5,6,7,8,9,10,
B. 10,9,8,7,6,5,4,3,2,1,
C. 1,8,7,6,5,4,3,2,9,10,
D. 1,2,10,9,8,7,6,5,4,3,
18. 以下关于C语言数据类型的叙述中正确的是______。
A. C基本数据类型包括:分为整型、实型、浮点型、字符型四种
B. 实型常量的表达方式包括十进制形式、十六进制形式、二进制形式、八进制形式、指数形式
C. 若要处理如“人员信息”等含有不同类型的相关数据,应自定义结构体类型
D. 若只处理“真”和“假”两种逻辑值,应使用逻辑类型
19. 以下叙述中正确的是______。
A. 任何情况下都不能用函数名作为实参
B. 函数既可以直接调用自己,也可以间接调用自己
C. 函数的递归调用不需要额外开销,所以效率很高
D. 简单递归不需要明确的结束递归的条件
20. 设有表示学生选课的三张表,学生S(学号,姓名,性别,年龄,身份证号),课程C(课号,课名),选课SC(学号,课号,成绩),则表SC的关键字(键或码)为______。
A. 课号,成绩        B. 学号,成绩
C. 学号,课号        D. 学号,姓名,成绩
21. 以下fun函数的功能是将形参s所指字符串内容颠倒过来:
void fun(char*s)
{int i,j,k;
for(i=0,j=strlen(s)______; i<j;i++,j--)
{k=s[i];s[i]=s[j];s[j]=k;}
}
在横线处应填入的内容是______。
A. +1        B. -1
C. +0        D. ,k=0
22. 若二维数组a有m列,则在a[i][j]前的元素个数为______。
A. j*m+i        B. i*m+j
C. j*m+i+1        D. i*m+j+l
23. 能将高级语言程序转换成目标语言程序的是______。
A. 调试程序        B. 解释程序
C. 编译程序        D. 编辑程序
24. 有以下程序
#include <stdio.h>
main()
{ int i,s=0,t[]={1,2,3,4,5,6,7,8,9};
for(i=0;i<9;i+=2) s+=*(t+i);
printf("%d\n",s);
}
程序执行后的输出结果是______。
A. 25        B. 20
C. 45        D. 36
25. 设已定义x为double类型变量:
#include<stdio.h>
main()
牛肉火锅的做法 {float x=323.82631;
printf("%.2e\n",x);}
则以上语句______。
A. 输出格式描述符的域宽不够,不能输出        B. 输出为32.38e+01
C. 输出为3.24e+002        D. 输出为3.24e2
26. 有以下程序:
# include <stdio.h>
struct stu
{ int num; char name[10]; int age;};
void fun(struct stu *p)内墙涂料
酒不醉人人自醉歌词
{ printf("%s\n",p->name);}
main()