1、【
单选题
】
执行下列程序后,变量a,b,e的值分别是( )。
int x一5,Y=4;
int a,b,e;
a=(——x==y++)?x;++y;
b=++x;
c=y;
[1分]
、
a=5,b=5,c=5
、
a=4,b=5,c=5
、
a=5,b=6,c=5
、
a=1,b=5,C=6
答案:
2、【
单选题
】
设有定义的语句:“char c1=92,c2=92;”,则以下表达式中的值为零的是( )。
[1分]
、
c1^c2
、
c1&c2
、
~c2
、
c1&c2
答案:
3、【
单选题
】
有以下程序:
main()
{ int x=0,y=5,z=3;
while(z-->O&&++x<5)y=y-1:
printf(”%d,%d,%d\n”,x,y.z);
}
程序执行后的输出结果是( )。
[1分]
、
3,2,0
、
3,2,-1
、
4,3,-1
、
5, 2, 5
答案:
4、【
单选题
】
下述程序执行的输出结果是( )。
#include
main()
{char a[2][4];
strcpy(a,"are");strcpy(a[1],"you");
a[0][3]='&'
print[(”%s\n”,a);
}
[1分]
、
arec&you
、
you
、
are
、
&.
答案:
5、【
单选题
】
若有以下程序:
#include
main()
{int k=2,m=4,n=6,。pk=&k,*pm=&m,*P;
*(P=&n)=*pk*(*pm);printf("%d\n",n);
)
程序的输出结果是( )。
[1分]
答案:
6、【
单选题
】
交换两个变量的值,不允许用临时变量,应该使用下列( )位运算符。
[1分]
答案:
7、【
单选题
】
下列字符数组初始化语句中,不正确的是( )。
[1分]
、
char c[]='goodmorning';
、
char e[20]="goodmorning":
、
char c[]=('a','b','c','d');
、
char c[]={”ffgoodmorning”);
答案:
8、【
单选题
】
有以下程序:
#include(strint9.h>
main()
{char p[20]={'a','b','c','d'},q[]=”abe”,r[]=”
abcde”;
strcpy(p+strlen(q),r);strcat(p,q);
printf(”%d%d\n”,sizeof(p),strlen(p));
)
程序运行后的输出结果是( )。
[1分]
、
20 9
、
9 9
、
Z0 11
、
11 11.
答案:
9、【
单选题
】
设a、b、e、d、m、n均为int型变量,且a=5、b=6、c=7、d=8、m=2、n=2,则逻辑表达式(m=a>b)&&(n=c>d)运算后,n的值是( )。
[1分]
答案:
10、【
单选题
】
以下选项中不合法的用户标识符是( )。
[1分]
、
abC.C
、
file
、
Main
、
PRINTF
答案:
11、【
单选题
】
为了提高软件的独立性,模块之间最好是( )。
[1分]
、
控制耦合
、
公共耦合
、
内容耦合
、
数据耦合
答案:
12、【
单选题
】
若有定义“int a=-5,b=7;”,则表达式a%=(b%2)运算后,a的值为( )。
[1分]
答案:
13、【
单选题
】
下列合法的声明语句是( )。
[1分]
、
int _abc=50;
、
double int=3+5c2.5:
、
long do=11;
、
float 3_asd=3e-3;
答案:
14、【
单选题
】
有以下程序:
#include
main()
{ int a[]={2,4.6.8},*p=a,i;
for(i=0;i<4;i+.+)a[i]=*p++;
printf(”%d\n”,a[2]);
程序的输出结果是( )。
[1分]
答案:
15、【
单选题
】
下列程序的输出结果是( )。
main()
(int i=1,j=2,k=3;
if(i++==1&&(++j==3==||k++==
3))
printf(”%d%d%d\n”,i,j,k);
)
[1分]
、
1 2 3
、
2 3 4
、
2 2 3
、
2 3 3
答案:
16、【
单选题
】
以下程序的输出结果是( )。
main()
{char str[][10]={¨china”,”beijing”),*p=str;
printf(”%s\n”,p十10):
[1分]
、
China
、
Beijing
、
ng
、
ing
答案:
17、【
单选题
】
以下关于字符串的叙述中正确的是( )。
[1分]
、
c语言中有字符串类型的常量和变量
、
两个字符串中的字符个数相同时才能进行字符串大小的比较
、
可以用关系运算符对字符串的大小进行比较
、
空串一定比空格打头的字符串小
答案:
18、【
单选题
】
下列程序的输出结果是( )。
#include
main()
{ int a=0,i;
for(i=1;i<5:i++)
{ switch(i)
{ case 0:
case 3:a+=1;
case】:
case 2:a=2;
default:a+=3;
}
}
printf(”%d”,a);
)
[1分]
答案:
19、【
单选题
】
有以下程序:
#include
main()
{ int x:=10,y=3;
printf(”%d\n”,y=x/y);
)
执行后的输出结果是( )。
[1分]
答案:
20、【
单选题
】
函数[seek(pf,OI,SEEK_END)中的SEEK_END代表的起始点是( )。
[1分]
、
文件开始
、
文件末尾
、
文件当前位置
、
以上都不对
答案:
21、【
单选题
】
数字字符0的ASCII值为48,运行以下程序的输出结果是( )。
main()
{char a='1',b='2':
printf(”%c,”.b++);printf(”%d\n”,b-a);)
[1分]
、
3,2
、
50,2
、
2,2
、
2,50
答案:
22、【
单选题
】
若有以下程序段:
int cl=1,c2=2,c3;
c3=c1/c9;
print[(”%d\n”,c3);
执行后的输出结果是( )。
[1分]
答案:
23、【
单选题
】
下列叙述中正确的是( )。
[1分]
、
软件测试应该由程序开发者来完成
、
程序经调试后一般不需要测试
、
软件维护只包括对程序代码的维护
、
以上三种说法都不对
答案:
24、【
单选题
】
下列程序中函数sort()的功能是对数组a中的数据进行由大到小的排序。
#include
void sort(int a[],int n)
{ int i,j,t;
for(i 0;i<N—L:I++)
for(j=i+1+1;j<N;J++)
if(aEi]<AEJ])
{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(”Vood,”,a[i]);
}
程序运行后的输出结果是( )。
[1分]
、
1,2,3,4,5,6,7,8,9,10,
、
10,9,8,7,6,5,4,3,2,1,
、
i,8,7,6,5,4,3,2,9,10,
、
1,2,10,9,8,7,6,5,4,3,
答案:
25、【
单选题
】
若有定义:int X,*pb;则正确的赋值表达式是( )。
[1分]
、
pb=&X
、
pb=X
、
*pb=&x
、
*pb=*x
答案:
26、【
单选题
】
下列叙述中正确的是( )。
[1分]
、
算法的执行效率与数据存储结构无关
、
算法的空间复杂度是指算法程序中指令(或语句)的条数
、
算法的有穷性是指算法必须能在执行有限个步骤之后终止
、
以上3种描述都不对
答案:
27、【
单选题
】
已知有如下结构体:
struct sk
{ int a;
float b;
}data,*p;
若有P一8Ldata,则对data的成员a引用正确的是( )。
[1分]
、
(*p).data.a
、
(*p).a;
、
p->data.a
、
P.data.a
答案:
28、【
单选题
】
若有定义和语句:
int*。pp,*P,a=20,b=10;
pp=8Lp;P=&a;P=&.b;printf(”%d,%d\n”,*
P,**PP);
则输出结果是( )。
[1分]
、
20,10
、
20,20
、
10,20
、
10,10
答案:
29、【
单选题
】
合法的main()函数命令参数形式是( )。
[1分]
、
main(int a,char*c口)
、
main(int arc,char**arv)
、
main(int argc,char*argv)
、
main(int argv,char*argc[])
答案:
30、【
单选题
】
当执行以下程序段时,( )。
x=-1:
do{x=x*x;)while(!x);
[1分]
、
循环体将执行一次
、
循环体将执行两次
、
循环体将执行无限次
、
系统将提示有语法错洪
答案:
31、【
单选题
】
设x=011050,则x=x&01252的值是( )。
[1分]
、
000000 1000 101000
、
1111110100011001
、
0000001 01 1 100010
、
1100000OOOl0 1 000
答案:
32、【
单选题
】
下列选项不符合良好程序设计风格的是( )。
[1分]
、
源程序要文档化
、
数据说明的次序要规范化
、
避免滥用got0语句
、
模块设计原则是高耦合、高内聚
答案:
33、【
单选题
】
有以下程序:
#include
main()
{ int x=4,y;
{ y=x;
if(!y)printf(”x”);
else
printf(”y”);
x--:
)while(x);
)
程序的输出结果是( )。
[1分]
、
xyyx
、
YYYY
、
yyxx
、
yxyx
答案:
34、【
单选题
】
有以下程序段:
int i,j,m=0;
for(i=1;i<=15;i+=4)
for(j=3;j<=19;j+=4)m++;
printf(”%d\n”,m);
程序段的输出结果是( )。
[1分]
答案:
35、【
单选题
】
若有定义“double a;”,则正确的输入语句是( )。
[1分]
、
scan{(”%if”,a);
、
scanf(”%f”,&a);
、
scan{(”%If”,&a)
、
scan{(”%le”,&a);
答案:
36、【
简答题】
给定程序中,函数proc()的功能是:使数组中的元素的值缩小5倍。
请修改程序中的错误,使它能得出正确的结果。
注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。
试题程序:
#include
#include
#include
float m[10];
f f****found****
int proc(void)
{
int J;
printf(”In subfunc after calling\n”);
for(j=0;j<10;j++)
{
|f****found****
printf(”%f”,m[j]%5);
}
}
void main()
{
int i;
printf(”In main before calling\n”);
for(i=0;i<10;i++)
{
m[i]=i+20:
printf(”%f”,m[i]);
}
proc();
printf(”\nIn main after calling\n”):
for(i=0;i<10;i++)
printf(”%f”,m[i]/S):
[24分]
解析:
(1)错误:intproC(voiD)正确:voiDproC(voiD)(2)错误:printF(”%F”,m[j]%5);正确:printF(”%F”,m[j]/5);
37、【
简答题】
请编写函数proc(),该函数的功能是:将放在字符串数组中的M个字符串(每串的长度不超过N),按顺序合并组成一个新的字符串。
例如,若字符串数组中的M个字符串为:
ABCD
BCDEFG
CDEFGHI
则合并后的字符串内容应该是ABCDBCDEFGCDEFGHI。
注意:部分源程序给出如下。
请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。
试题程序:
#include
#include
#define M 3
#define N 20
void proc(char arr[M][N].char*b)
{
}
void main()
{
char str[M][N]={”ABCD”,”BCDEFG”,”
CDEFGHl”),i;
char arr[100]={”#############
#####”);
printf(”The string:\n”);
for(i=0;i<2M;i++)
puts(str[i]);
printf(”\n”);
proc(str,arr);
printf(”The A string:\n”);
printf(”%S”,arr);
printf(”\nln”);
}
[18分]
解析:
voiDproC(ChArArr[M][N],ChAr*B){
inti,j,k一0;
for(i=0;i<M;i++)//i表示其行下标
for(j=0;arr[i][j]!=’\0';J++)//由于每行的个数不等,因此用[i][j]!一‘\o'来作为循环结束的条件
b[k++]=arrEi] [j];//把二维数组中的元素放到b的一维数组中,
b[k]=’\o';//最后给b赋'\0’作为字符串结束的标志)