二级C语言分类模拟题562
(总分43.5,考试时间90分钟)
选择题
1. 有以下程序:
#include<stdio,h>
main( )
{ int i,j,x=0;
for(i=0;i<2;i++)
{ x++;
for(j=0;j<=3;j++)
{ if(j%2==0)continue;x++;}
x++;
}
printf("x=%d\n",x);
}
程序的运行结果是______。
A. x=4        B. x=6
C. x=8        D. x=12
2. 软件按功能可以分为应用软件、系统软件和支撑软件(或工具软件)。下面属于应用软件的是______。
A. 学生成绩管理系统        B. C语言编译程序
C. UNIX操作系统        D. 数据库管理系统
3. 下面程序的输出结果是______。
#include<stdio.h>
main()
{char a[]={"a","b","c","d","f","g"},*p;
p=a;
printf("%c\n",*p+4);
}
A. .a        B. .b
C. .e        D. .f
4. 下列关于栈的叙述正确的是______。
A. 栈按“先进先出”组织数据        B. 栈按“先进后出”组织数据
C. 只能在栈底插入数据        D. 不能删除数据
5. 以下选项中可用做C程序合法实数的是______。
A. 3.0e0.2        B. .1e0
C. .E9        D. 9.12E
6. 设有定义:
char s[81];int i=0;
以下不能将一行(不超过80个字符)带有空格的字符串正确读入的语句或语句组是______。
A. scanf("%s",s);
B. while((s[i++]=getchar())!="\n");s[i]="\0";
C. gets(s);
D. do{scanf("%c",&s[i]);}while(s[i++]!="\n");s[i]="\0";
7. 设有定义:char str[]="ABCD",*p=str;则语句printf("%d\n", *(p+4));的输出结果是
A. 68        B. 0
C. 字符D的地址        D. 不确定的值
8. 在软件开发中,需求分析阶段产生的主要文档是______。
A. 软件集成测试计划        B. 软件详细设计说明书
C. 用户手册        D. 软件需求规格说明书
9. 以下叙述正确的是____。
A. continue语句的作用是结束整个循环的执行
B. 只能在循环体内和switch语句体内使用break语句
C. 在循环体内使用break语句或continue语句的作用相同
D. 从多层循环嵌套中退出时,只能使用goto语句
10. 以下叙述中正确的是______。
A. 在对指针进行加、减算术运算时,数字1表示1个存储单元的长度
B. 如果p是指针变量,则*p表示变量p的地址值
C. 如果p是指针变量,则&p是不合法的表达式
D. 如果P是指针变量,则*p+1和*(p+1)的效果是一样的
11. 有以下程序
#include<stdio.h>
void fun(int p)
{ int d=2;
p=d++; printf("%d", p); }
main()
{ int a=1;
fun(a); printf("%d\n", a);}
程序运行后的输出结果是______。
A. 32        B. 12
C. 21        D. 22
12. 以下程序的输出结果是______。
main()
{char st[20]="hello\0\t\\";
printf("%d%d\n", strlen(st), sizeof(st));
}
A. 9 9        B. 5 20
C. 13 20        D. 20 20
13. 有以下程序:
ftell函数用法 # include <stdio.h>
main()
{ int a=7;
while(a--);
printf("%d\n",a);
}
程序运行后的输出结果是______。
A. -1        B. 0
C. 1        D. 7
14. 在以下一组运算中,优先级最高的运符算是 ( )
A. <=        B. =
C. %        D. & &
15. 算术运算符和圆括号有不同的运算优先级,对于表达式:a+b+c*(d+e),关于执行顺序,以下说法正确的是______。
A. 先执行(d+e)得r2,再执行c*r2得r3,再执行a+b得r1,最后执行r1+r3得表达式最后结果
B. 先执行a+b得r1,再执行(d+e)得r2,再执行c*r2得r3,最后执行r1+r3得表达式最后结果
C. 先执行(d+e)得r2,再执行c*r2得r3,再执行b+r3得14,最后执行a+r4得表达式最后结果
D. 先执行a+b得r1,再执行r1+c得r5,再执行(d+e)得r2,最后执行r5*r2得表达式最后结果
16. 以下程序段中,与语句:
k=a>b?(b>c?1:0):0;
功能相同的是______。
A. if((a>b)&&(h>c))k=1;else k=0;
B. if((a>b)||(b>c))k=1;else k=0;
C. if(a<=b)k=0;else if(b<=c)k=1;
D. if(a>b)k=1;else if(b>c)k=1;else k=0;
17. 有以下程序
#include<stdio.h>
void fun(int n,int*s)
{
int f;
if(n==1)*s=n+1;
else
{
fun(n-1,&f);
*s=f;
}
}
main()
{
int x=0;
fun(4,&x);
printf("%d\n",x);
}
程序运行后的输出结果是______。
A. 2        B. 1
C. 3        D. 4
18. 有以下程序:
#include <stdio.h>
main()
{
char c;
while((c=getchar())!="\n")
{
switch(c-"2")
{
case 0 :
case 1 : putchar(c+4);
case 2 : putchar(c+4); break;
case 3 : putchar(c+3);
default : putchar(c+2); break;
}
}
printf("\n");
}
程序运行后从第一列开始输入以下数据:
2473<回车>
程序的输出结果是______。
A. 668977        B. 4444
C. 6677877        D. 68766
19. 函数ftell(fp)的作用是______。
A. 得到流式文件中的当前位置        B. 移动流式文件的位置指针
C. 初始化流式文件的位置指针        D. 以上答案均正确
20. 设有输入语句scanf("a=%d,b=%d,c=%d",&a,&b,&c),为使变量a的值为2,b的值为4,c的值为8,则从键盘输入数据的正确形式是______。
A. 1,3,2<回车>        B. a=1 b=3 c=2<回车>
C. 132<回车>        D. a=2,b=4,C=8<回车>
21. 当执行下面的程序时,如果输入ABC,则输出结果是______。
#include "stdio.h"
#include "string.h"
main()
{ char ss[10]="12345";
gets(ss);strcat(ss,"6789");
printf("%s\n",ss);
}
A. ABC6789        B. ABC67
C. 12345ABC6        D. ABC456789
22. 设p是指针变量,语句p=NULL;等价于______。
A. p="0";        B. p=";
C. p="";        D. p=0;
23. 以下程序的输出结果是______。
void fun(int*a, int i, int j)
{ int t;
if(i<j)
{t=a[i]; a[i]=a[j]; a[j]=t;
i++; j--;
fun(a, i, j);
}
}
main()
{int x[]={2, 6, 1, 8}, i;
fun(x, 0, 3);
for(i=0; i<4; i++) printf("%2d", x[i]);
printf("\n");
}
A. 1,2,6,8        B. 8,6,2,1
C. 8,1,6,2        D. 8,6,1,2
24. “商品”与“顾客”两个实体集之间的联系一般是
A. 一对一        B. 一对多
C. 多对一        D. 多对多
25. 若有定义:double a=22; int i=0, k=18;,则不符合C语言规定的赋值语句是______。
A. i=(a+k)<=(i+k);        B. i=a%11;
C. a=a++, i++;        D. i=!a;
26. 有以下程序:
#include<stdio.h>
main()
{ int m=1,n=2,*p=&m,*q=&n,*r;
r=p;p=q;q=r;
printf("%d,%d,%d,%d\n",m,n,*p,*q);
}
程序运行后的输出结果是______。
A. 2,1,1,2        B. 1,2,1,2
C. 2,1,2,1        D. 1,2,2,1
27. 有以下程序:
#include<stdio.h>
#define N 3
void fun(int x[][N],int *r1,int *r2)
{ int i,j;
*r1=*r2=0;
for(i=0;i<N;i++)
{ j=N-(i+1);
if(x[*r1][*r2]<x[i][j]){*r1=i;*r2=j;}
}
}
main()
{ int a[N][N]={1,5,7,9,2,6,4,3,8},i,j;
fun(a,&i,&j);
printf("%d\n",a[i][j]);
}
程序运行后的输出结果是______。
A. 8        B. 6
C. 7        D. 9
28. 一个算法应该具有“确定性”等5个特性,下面对另外4个特性的描述中错误的是( )
A. 有零个或多个输入        B. 有零个或多个输出