(41)下列选项中错误的说明语句是
A)char a[]={′t′,′o′,′y′,′o′,′u′,′\0′};
B)char a[]={"toyou\0"};
C)char a[]="toyou\0";
D)char a[]=′toyou\0′;
正确答案: D
(42)下述对C语言字符数组的描述中错误的是
A)字符数组的下标从0开始
B)字符数组中的字符串可以进行整体输入/输出
C)可以在赋值语句中通过赋值运算符"="对字符数组整体赋值
D)字符数组可以存放字符串
正确答案: C
(43)阅读下列程序,则在执行后,程序的运行结果为
#include "stdio.h"
#include "string.h"
main()
{char a[30]="nice to meet you!";
strcpy(a+strlen(a)/2,"you");
printf("%s\n",a);}
A)nice to meet you you
B)nice to
C)meet you you
D)nice to you
正确答案: D
(44)阅读下面程序,则执行后的结果是
#include "stdio.h"
main()
{char str[]="tomeetme",*p;
for(p=str;p<str+7;p+=2)putchar(*p);
printf("\n");}
A)tomeetme
B)tmem
C)oete
D)tome
正确答案: B
(45)下面程序的文件名为t.exe,在DOS下输入的命令行参数如下:t to meet me<回车>
则程序输出的结果是
#include "stdio.h"
main(argc,argv)
int argc;char *argv[];
{int i;
printf("%d\n",argc);}
A)3
B)4
C)2
D)以上答案都不正确
正确答案: B
(46)阅读下面程序,则执行后的结果为
#include "stdio.h"
long fun(int n)
{if(n>2)
return(fun(n-1)+fun(n-2));
else return(2);}
main()
{printf("%ld\n",fun(5));}
A)10
B)15
C)20
D)以上3个答案都不正确
正确答案: A
(47)已知如下定义,则sizeof(a)的值是
struct{int i;
char c;
double a; } a;
A)8
B)9
C)10
D)11
正确答案: D
(48)已知函数的原形如下,其中结构体a为已经定义过的结构,且有下列变量定义
struct a *f(int t1,int *t2,strcut a t3,struct a *t4)
struct a p,*p1;int i;
则正确的函数调用语句为
A)&p=f(10,&i,p,p1);
B)p1=f(i++,(int *)p1,p,&p);
C)p=f(i+1,&(i+2),*p,p);
D)f(i+1,&i,p,p);
正确答案: B
(49)下面程序段的输出为
#include "stdio.h"
main()
{ printf("%d\n",12<<2);}
A)0
B)47
C)48
D)24
正确答案: C
(50)假定当前盘符下有两个文本文件,如下
文件名 a1.txt a2.txt
内容 123# 321#
则下面程序段执行后的结果为
#include "stdio.h"
void fc(FILE *p)
{ char c;
while((c=fgetc(p))!=′#′)putchar(c);}
main()
{ FILE *fp;
fp=fopen("a1.txt","r");
fc(fp);
fclose(fp);
fp=fopen("a2.txt","r");
fc(fp);
fclose(fp);
putchar(′\n′);}
A)123321
B)123
C)321
D)以上答案都不正确
正确答案: A
二 、填空题
(1)常用的黑箱测试有等价分类法、 【1】 、因果图法和错误推测法4种。
正确答案: 1.(边值分析法)
(2)测试的目的是暴露错误,评价程序的可靠性;而 【2】 的目的是发现错误的位置并改正错误。
正确答案: 1.(调试)
(3)软件维护活动包括以下几类:改正性维护、适应性维护、 【3】 维护和预防性维护。
正确答案: 1.(完善性)
(4)在面向对象的设计中,用来请求对象执行某一处理或回答某些信息的要求称为【4】 。
正确答案: 1.(消息)
(5)关键字ASC和DESC分别表示 【5】 的含义。
正确答案: 1.(升序排列和降序排列)
(6)定义int a=5,b;,则执行表达式b=++a*--a之后,变量b的值为 【6】 。
正确答案: 1.(25)
(7)以下程序的输出结果是 【7】 。
#include "stdio.h"
main()
{int a=065;
printf("%d\n",--a);
}
正确答案: 1.(52)
(8)阅读下面程序,则执行后的输出结果是 【8】 。
#include "stdio.h"
main()
{int x,y,z;
x=1;y=2;z=3;
if(x>y)if(x>z)printf("%d",x);
else printf("%d",y);
printf("%d\n",z);
}
正确答案: 1.(3)
(9)如下语句printf("%c\n",′B′+40);在执行后的输出结果是 【9】 。
正确答案: 1.(j)
(10)阅读下面程序,则程序的执行结果为 【10】 。
#include "stdio.h"
main()
{int a=30,b=20,z;
z=fun(a+b,a-b);
printf("%d\n",z);
}
fun(int a,int b)
{int z;
z=a/b;
return z;
}
正确答案: 1.(5)
(11)下面的程序实现的是指针p所指向的地址的n个数中,求出最大的和最小的数据,请填空。
fun(int *p,int n)
{int *q;
int max,min;
max=min=*p;
for(q=p; 【11】 ;q++)
if( 【12】 )max=*q;
else if( 【13】 )min=*q;
}
正确答案: 1.(q<p+n) 2.(*q>max) 3.(*q<min)
(12)下面的函数fun的功能是将形参x的值转换成二进制数,所得二进制数的每一位放在一维数组中返回,二进制的最低位放在下标为0的元素中,其他依次类推,请填空。
fun(int x,int b[])
{ int k=0,r;
do{
r=x% 【14】 ;
b[ 【15】 ]=r;
x/= 【16】 ;
}while(x);
}
正确答案: 1.(2) 2.(k++) 3.(2)
(13)下面函数的功能是将一个字符串的内容颠倒过来,请填空。
void fun(char str[])
{int i,j, 【17】 ;
for(i=0,j= 【18】 ;i<j;i++,j--)
{ k=str[i];
str[i]=str[j];
str[j]=k;
}
}
正确答案: 1.(k) 2.(strlen(str)-1)
(14)阅读下面程序,则程序的执行结果为【19】。
#include "stdio.h"
fun(int k,int *p)
{ int a,b;
if(k==1||k==2)
*p=1;
else{ fun(k-1,&a);
fun(k-2,&b);
*p=a+b;
}
}
main()
{ int x;
fun(6,&x);
printf("%d\n",x);
}
正确答案: 1.(8)
(15)阅读下列程序,则程序的输出结果为【20】。
#include "stdio.h"
struct ty
{int data;
char c;
};
main()
{ struct ty a={30,′x′};
fun(a);
printf("%d%c",a.data,a.c);
}
fun(struct ty b)
{ b.data=20;
b.c=′y′;
}
正确答案: 1.(30x)