二级C语言分类模拟题535
选择题
1、有以下程序段:
int x;
for(x=3; x<6; x++)
printf((x%2)?("**%d"): ("##%d\n"), x);
程序段的输出结果是
A.**3
##4
**5
B.##3
**4
##5
C.##3
**4##5
.
D.**3##4
**5
2、设x和y都是int类型,且x=1,y=2,则printf("%d%d",x,y,(x,y))的输出结果是( )。
A. 1 2 B. 1 2 2 C. 1,2 D. 输出值不确定
3、若有以下说明和定义:
#include<stdio.h>
main()
{ int(*a)(int*), *b(), w[10], c;
}
int fun(int*c){…}
则以下选项中能正确调用fun函数是
A.a=fun; a(w); B.a=fun; (*a)(&c); C.b=fun; *b(w); D.fun(b);
4、若变量已正确定义,在if(W)printf("%d\n",k);中,以下不可替代W的是______。
A.a==b+c B.ch=getchar() C.a<>b+c D.a++
5、阅读以下程序:
# include<stdio.h>
main()
{ int case; float printF;
printf("请输入2个数:");
scanf("%d%f", &case,&printF.;
printf("%d%f\n",case,printF.;
}
该程序在编译时产生错误,其出错原因是______。
A.定义语句出错,case是关键字,不能用作用户自定义标识符
B.定义语句出错,printF不能用作用户自定义标识符
C.定义语句无错,scanf不能作为输入函数使用
D.定义语句无错,printf不能输出case的值
6、有以下程序:
# include <stdio.h>
main()
{ char a,b,c;
b='1';c='A';
for(a=0;a<6;a++)
{if(a%2) putchar(b+a);
else putchar(c+a);
}
}
程序运行后的输出结果是______。
A.1B3D5F B.ABCDEF
C.A2C4E6 D.123456
7、下面对软件特点描述不正确的是______。
A.软件是一种逻辑实体,具有抽象性
B.软件开发、运行对计算机系统具有依赖性
C.软件开发涉及软件知识产权、法律及心理等社会因素
D.软件运行存在磨损和老化问题
8、下列叙述中正确的是______。
A.存储空间不连续的所有链表一定是非线性结构
B.节点中有多个指针域的所有链表一定是非线性结构
C.能顺序存储的数据结构一定是线性结构
D.带链的栈与队列是线性结构
9、设有宏定义:
#define IsDIV(k,n) ((k%n= =1)?1 : 0)
且变量m已正确定义并赋值,则宏调用:
IsDIV(m,5) && IsDIV(m,7)
为真时所要表达的是______。
A.判断m是否能被5和7整除 B.判断m被5和7整除是否都余1
C.判断m被5或者7整除是否余1 D.判断m是否能被5或者7整除
10、按照C语言规定的用户标识符命名规则,不能出现在标识符中的是______。
A.连接符 B.大写字母 C.数字字符 D.下划线
11、设有宏定义:
#define IsDIV(k,n)((k%n==1)?1:0)
且变量m已正确定义并赋值,则宏调用:
IsDIV(m,5)&&IsDIV(m,7)
为真时所要表达的是______。
A.判断m是否能被5和7整除 B.判断m被5和7整除是否都余1
C.判断m被5或者7整除是否余1 D.判断m是否能被5或者7整除
12、有以下程序
#include<stdio.h>
void swap(int*a,int*b)
{int t,*tp;
t=*a;*a=*b;*b=t;
tp=a;a=b;b=tp;
printf("%d,%d,",*a,*b);
}
main()
{int i=3,j=7,*p=&i,*q=&j;
swap(p,q);
printf("%d,%d,%d,%d",i,j,*p,*q);
程序执行后的输出结果是______。
A.3,7,3,7,3,7 B.7,3,7,3,7,3 C.3,7,3,7,7,3 D.3,7,7,3,7,3
13、以下程序段给数组所有元素输入数据:
#include <stdio.h>
main()
{ int a[10], i=0;
while(i<10) scanf("%d", ______);
}
应在下划线处填入的是
A.a+(i++) B.&a[i+1] C.a+i D.&a[++i]
14、有如下定义:
struct st
{ char name[12]; int age; char sex; } std[10], *p=std;
以下语句错误的是______。
A.scanf("%d", p->age); B.scanf("%s",std[0].name);
C.scanf("%d",&std[1].age); D.scanf("%c",&(p->sex));
15、若有以下程序段:
char str[4][12]={"aaa","bbbb","ccccc","dddddd"},*strp[4];
int i;
for(i=0;i<4;i++)strp[i]=str[i];
则以下错误引用字符串的选项是(其中0≤k<4)______。
A.*strp B.str[k] C.strp[k] D.strp
16、有以下程序段:
int j;float y;char name[50];
scanf("%2d%f%s",&j,&y,name);
当执行上述程序段,从键盘上输入55566 7777abc后,y的值为______。
A.55566.0 B.566.0
C.7777.0 D.566777.0
17、程序流程图中带有箭头的线段表示的是______。
A.图元关系 B.数据流 C.控制流 D.调用关系
18、已定义以下函数
int fun(int *P)
{ return *P;}
fun函数返回值是______。
A.一个整数 B.不确定的值
C.形参p中存放的值 D.形参p的地址值
19、软件测试的目的是______。
A.评估软件可靠性 B.发现并改正程序中的错误
C.改正程序中的错误 D.发现程序中的错误
20、若有定义:float x=1.5;int a=1,b=3,c=2;,则正确的switch语句是______。
A.switch(a+b)
{case 1:printf("*\n");
case 2+1:printf("**\n");}
B.switch((int)x);
{case 1:printf("*\n");
case 2:printf("**\n");}
C.switch(x)
{case 1.0:printf("*\n");
case 2.0:printf("**\n");}
D.switch(a+b)
{case 1:printf("*\n");
case c:printf("**\n");}
21、下面程序的运行结果是______。
#include<stdio.h>
void del(char*s)
{int i,j;
char*a;
a=s;
for(i=0,j=0;a[i]!='\0';i++)
{if(a[i]>='0'&&a[i]<='9')
{s[j]=a[i];
j++;
}
s[j]='\0';
}
}
main()
{char s[]="aa89gggh";
del(s);
printf("\n%s",s);
}
A.aa B.89 C.gggh D.aa89gggh
22、以下选项中表示一个合法的常量是(说明:符号□表示空格)______。
A.9□9□9 B.0Xab
C.123E0.2 printf函数的执行顺序 D.2.7e
23、有以下程序:
#include
#define S(x) (x)*x*2
main()
{ int k=5,j-2;
printf("%d,",S(k+j));printf("%d\n",S((k-j)));
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论