#include
void fun(char*t.char*s)
{ while(*tl=0)t++;
while((*t++-*s++)!一0);
)
main()
{char ssElo]=”aCC”,aaElo]=”bbxxyy”;
fun(SS,aa);printf(”%s,%s”,SS,aa);
)
程序运行结果是( )。A. accxyy,bbxxyyB. acc,bbxxyyC. accxxyy,bbxxyyD. accbbxxyy,bbxxyy
本题共1分,参考答案:D:D。【解析】主函数中语句fun(SS,aa)的功能是将字符串aa连接到字符串ss的末尾。
12下述程序的输出结果是( )。
#includedstdio.h>
main()
{char ehE2][5]={”1234”,”5678”),*p[2];
int i,j,s=0;
for(i一0;i<2;i++)
pEi]=ch[i];
for(i一0;i<2;i++)
{s=p[i][j]-'0';
printf(”%d”,s);)
}A. 6357B. 6135C. 37D. 69j357
本题共1分,参考答案:C:C。【解析】本题先将指针P指向二维数组eh[2]E5],相当于p[o]一”l234”,p[1]一”5678”;通过双重for循环,将P中的字符隔一个输出一个,通过“s=p[i][i]-'0';”语句将所要输出的字符转换成相应的十迸制数。
13有以下程序
#include
main()
{FILE*fp;int a[10]=(1,2,3,0,0),i;
fp—fopen(”d2.dat,”wb”);
fwrite(a,sizeof(int),5,fp);
fwrite(a,sizeof(int),5,fp);
fclose(fp);
fp—fopen(”d2.dat”,”rb”);
fread(a,sizeof(int),10,fp);
fclose(fp);
for(i=0;i<10;i十f-)printf("%d",a[i]);
}
程序的运行结果是( )。A. 1,2,3,0,0,0.0,0,0,0,B. 1,2,3,1,2,3,0,0,0,0,C. 123,0,0,0,0,123,0,0,O,O,D. 1,2,3,0,0,1,2,3,0,0,本题共1分,参考答案:D:D。【解析】本题程序首先用函数fopen()以“wb”的方式开打文件“d2.dat”,然后调用两次fwrite函数将数组a的5个元素,依次输出到文件fp中,共10个字节,关闭文件。再次打开文件,使用文件指针指向文件的开头,调用head函数从文件印中读取这l0个字节的数据到数组a中。14下列程序的输出结果是( )。
void fun(int*x,int y)
{printf(”%d%d”,*x,”y);*x=3;。y=4;)
main()
{ int x=1.y=2:
fun(&y,&x);
printf(”%dXd”,X,y);
) A. 2 1 4 3B. 1 2 1 2C. 1 2 3 4D. 2 1 1 2
本题共1分,参考答案:C:C。【解析】当执行fun函数时,因为参数传递时是地址传递,因此形参值的改变会影响实参中的数,在执行fun函数时先输出l2,接着把*x赋3,*Y赋4,此时带回主函数中,输出的值为34。
15有以下程序,其中函数f的功能是将多个字符串按字典顺序排序( )。
#{nc[ude%string.h>
void{(char*p[],int n)
{char*t;int i,j;
for(i=0:i
for(j=i+1;j
if(strcmp(p[i],p[j]>O){t=p[i];p[i]=p[j];p[j]
=t;}
}
main()
{char *P[5]={¨abc”,”aabdfg”,”abbd”,”dcdbe”,”ed”);
f(p,5):
print[("%d\n",strlen(p[1]));
程序运行后的输出结果是( )。A. 2B. 3C. 6D. 4
本题共1分,参考答案:D:D。【解析】函数voidf的功能是将字符指针数组*p[]中的每个字符串按照从小到大的顺序排序。在主函数main()中,调用f(p,5)后,字符指针数组*pE5]中的字符串按照字典顺序从小到大排列为如下形式,即*pE5]一(”aab—df9”,”abbd”,”abc”,”cd¨,”dcdbe”),因此P[1]=”abdb”,strlen(p[1])=4。
16下面程序的功能是输m以下形式的金字塔图案:
main()
{ int i,j;
for(i-1;i<-4;i++) ***
{ for(j=1;j<=4-i;j++)printf("");
*****
for(j=1;j<=________;j++)printf(”*”);
******
printf(”\n”):
}
}
在下划线处应填入的是( )。A. iB. 2*i-1C. 2*i+1D. i+2
本题共1分,参考答案:B:B。【解析】通过观察可知图形共4行,主函数中通过一个for循环四次,输出4行。第一行输出3个空格和l个“*”,第2行输出2个空格和3个“*”,第3行输出3个空格和5个“*”,第四行输出7个“*”,主函数中通过第二个循环控制每行的输出空格数,第三个for循环控制输出的“*”的个数,总结规律:每行输出的“*”的个数,总比前一行的多2个,且第一行的个数为l,可以断定每行输出的“*”的个数组成了一个公差为2的等差数列,所以每行输出“*”的个数即该等差数列的通项,故该空格处应该填写2*i一1。
17设a、b和C都是int型变量。且a=3,b=4,c=5,则以下的表达式中值为0的表达式是( )。A. a&&.bB. a<=bC. aD. E. b+c&&b-cF. !((a
本题共1分,参考答案:D:D。【解析】||和&&的优先级高于十和一,ll和&&的优先级相等,且是左结合的,就是从左边开始结合到右边。按照这个规则,正确选项为D。
18下列变量声明合法的是( )。A. short a=1.4e-1;B. double b=1+3e2.8;C. 10ng do=0xfdaL;D. float 2_aaa=1e-3;
本题共1分,参考答案:A:A。【解析】解答本题需了解3个知识点:①标识符是由字母、数字或下划线组成,并且它的第一个字符必须是字母或者下划线;②d0是C语言的一个关键字,不能再用做变量名和函数名;③C语言规定指数形式的实型数量e或E后面的指数必须是整数。
19以下程序的输出结果是( )。
main()
{ int a=7,b=8,*p,*q,*r;
p=&a;q=&b;
r=p;p=q;q=r;
printf(”%d,%d,%d,%d\n”,*P,*q,a,b);
)A. 8,7,8,7B. 7,8,7,8C. 8,7,7,8D. 7,8,8,7
本题共1分,参考答案:C:C。【解析】在“r=P;p=q;q=r;”三个语句是表示P与q交换,经过交换后P指向b的地址,q指向a的地址,因此最后输出为8,7,7,8,故选择C选项。
20有下列程序:
main()
{ int y=10
do(y--;}while(--y);
printf(”%d\n”,--y);
)
当执行程序时,输出的结果是( )。A. -1B. 1C. 4D. 0
本题共1分,参考答案:D:D。【解析】本题考查d0—while循环。当--Y是0(即y是o)时结束循环,输出--y,先将y的值减1再输出Y的值。
相关推荐:
北京 | 天津 | 上海 | 江苏 | 山东 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
广东 | 河北 | 湖南 | 广西 | 河南 |
海南 | 湖北 | 四川 | 重庆 | 云南 |
贵州 | 西藏 | 新疆 | 陕西 | 山西 |
宁夏 | 甘肃 | 青海 | 辽宁 | 吉林 |
黑龙江 | 内蒙古 |