if(s[*k]
returns[*k];
}
main()
{inta[10]={876,675,896,101,301,401,980,431,451,777},k;
fun(a,10,&k);
printf(“%d,%d\n”,k,a[k]);
}则输出结果为:
A、7,431B、6C、980D、6,980
18、有如下程序
inta[10]={1,2,3,4,5,6,7,8,9,10};
int*p=&a[3],b;b=p[5];
则b的值是
A、5B、6C、9D、8
19、下面程序的输出结果是:
#include
main()
{inta[]={1,2,3,4,5,6,7,8,9,0},*p;
p=a;
printf(“%d\n”,*p+9;);
}A、0B、1C、10D、9
20、有下面程序段
#include“stdio.h”
#include“string.h”
main()
{chara[3][20]={{“china”},{“isa”},{“bigcountry!
”}};
chark[100]={0},*p=k;
inti;
for(i=0;i<3;i++)
{p=strcat(p,a[i]);}
i=strlen(p);
printf(“%d\n”,i);
}则程序段的输出结果是:
A、18B、19C、20D、21
21、若有定义:
char*st=”howareyou”;下列程序段中正确的是
A、chara[11],*p;strcpy(p=a+1,&st[4]);
B、chara[11];strcpy(++a,st);
C、chara[11];strcpy(a,st);
D、chara[],*p;strcpy(p=&a[1],st+2);
22、有以下程序
#include
intfun(chars[])
{intn=0;
while(*s<=’9’&&*s>=’0’){n=10*n+*s-‘0’;s++}
return(n);
}
main()
{chars[10]={‘6’,’1’,’*’,’4’,’*’,’9’,’*’,’0’,’*’};
printf(“%d\n”,fun(s));
}程序的运行结果是:
A、9B、61490C、61D、5
23、有以下函数
intaaa(char*s)
{char*t=s;
while(*t++);
t--;
return(t-s);
}以下关于aaa函数功能的叙述正确的是:
A、求字符串s的长度B、比较两个串的大小
C、将串s复制到串tD、求字符串s所占字节数
24、下列选取项中错误的说明语句是:
A、chara[]={‘t’,’o’,’y’,’o’,’u’,’\0’};B、chara[]={“toyou\0”};
C、chara[]=”toyou\0”;D、chara[]=’toyou\0’;
25、若有说明:
int*p,m=5,n;,以下正确的程序段是
A、p=&n;scanf(“%d”,&p);B、p=&n;scanf(“%d”,*p);
C、scanf(“%d”,&n);*p=n;D、p=&n;*p=m;
26、有以下程序
main()
{inta[4][4]={{1,4,3,2},{8,6,5,7},{3,7,2,5},{4,8,6,1}},i,j,k,t;
for(i=0;i<4;i++)
for(j=0;j<3;j++)
for(k=j+1;k<4;k++)
if(a[j][i]>a[k][i]){t=a[j][i];
a[j][i]=a[k][i];
a[k][i]=t;}/*按列排序*/
for(i=0;i<4;i++)printf(“%d”,a[i][i]);
}
程序运行后的输出结果是:
A、1,6,5,7,B、8,7,3,1,
C、4,7,5,2,D、1,6,2,1,
27、当运行以下程序时,从键盘输入AhaMA(空格)Aha,则下面程序的运行结果是
#include
main()
{chars[80],c=’a’;
inti=0;
scanf(“%s”,s);
while(s[i]!
=’\0’)
{if(s[i]==c)s[i]-32;
elseif(s[i]==c-32)s[i]=s[i]+32;
i++;
}puts(s);}
A、ahAMaB、AbAMa
C、AhAMaD、ahAMa[空格]ahA
28、下面程序输出的结果是:
main()
{inti;
inta[3][3]={1,2,3,4,5,6,7,8,9};
for(i=0;i<3;i++)printf(“%d”,a[2-i][i]);
}A、159B、753C、357D、591
29、现有如下程序段
#include“stdio.h”
main()
{inta[5][6]={23,3,65,21,6,78,28,5,67,25,435,76,
8,22,45,7,8,34,6,78,32,4,5,67,4,21,1};
inti=0,j=5;
printf(“%d\n”,*(&a[0][0]+2*i+j-2));}
则程序的输出结果为:
A、21B、78C、23D、28
30、请选出正确的程序段
A、int*p;B、int*s,k;C、int*s,k;D、int*s,k;
scanf(“%d”,p);*s=100;char*p,c;char*p,e;
s=&k;s=&k;
p=&c;p=&c;
*p=’a’;*s=1;
31、下面程序段的运行结果是:
chara[]=”lanuage”,*p;
p=a;
while(*p!
=’u’){printf(“%c”,*p-32);p++;}
A、LANGUAGEB、languageC、LAND、langUAGE
32、有以下程序
voidf(int*q)
{inti=0;
for(;i<5;i++)(*q)++;}
main()
{inta[5]={1,2,3,4,5},i;
f(a);
for(i=0;i<5;i++)printf(“%d”,a[i]);
}程序运行后的输出结果是:
A、2,2,3,4,5B、6,2,3,4,5
C、1,2,3,4,5D、2,3,4,5,6
33、有以下语句,则对a数组元素引用不正确的是(0<=i<=9)
inta[10]={0,1,2,3,4,5,6,7,8,9},*p=a;
A、a[p-a]B、*(&a[i])C、p[i]D、*(*(a+i))
34、有以下程序
#include
main()
{charp[20]={‘a’,’b’,’c’,’d’},q[]=”abc”,r[]=”abcde”;
strcat(p,r);strcpy(p+strlen(q),q);
printf(“%d\n”,strlen(p));
}程序运行后的输出结果是
A、9B、6C、11D、7
35、下列程序段中,不能正确赋值的是:
A、char*p,ch;B、char*p
p=&ch;p=(char*)malloc
(1)
scanf(“%c,&p”)scanf(“%c”,p);
C、char*pD、char*p,ch;
*p=getchar()p=&ch;
*p=getchar();
36、若有定义intw[3][5];则以下不能正确表示该数组元素的表达式是:
A、*(*w+3)B、(*w+1)[4]
C、*(*(*w+1))D、*(&w[0][0]+1)
37、若有以下函数首部
intfun(doublex[10],int*n)//doublex[10]是指针的第三种写法
则下面针对此函数的函数声明语句中正确的是:
A、intfun(doublex,int*n);B、intfun(double,int);
C、intfun(double*x,intn);D、intfun(double*,int*);
38、下列函数的运行结果是:
main()
{inti=2,p;
intj,k;
j=i;k=++i;p=f(j,k);
printf(“%d”,p);
}
intf(inta,intb)
{intc;
if(a>b)c=1;
elseif(a==b)c=0;
elsec=-1;
return(c);}
A、-1B、1C、2D、编译出错,无法运行
39、对下述程序的判断中,正确的是:
#include
voidmain()
{char*p,s[128];
p=s;
while(strcmp(s,”End”)){printf(“inputastring:
”);gets(s);
while(*p)putchar(*p++);}}
A、此程序循环接收字符串并输出,直到接收字符串”End”为止
B、此程序循环接收字符串,接收到字符串”End”则输出,否则程序终止
C、此程序循环接收字符串并输出,直到接收字符串“End”为止,但因为代码有错误,程序不能正常工作。
D、此程序循环接收字符串并将其连接在一起,直到接收字符串”End”为止,输出连接在一起的字符串。
40、下列关于字符串的说法中错误的是:
A、在C语言中,字符串是借助于字符一维数组来存放的,并规定以字符’\0’作为字符串结束标志。
B、‘\0’作为标志占用存储空间,计入串的实际长度。
C、在表示字符串常量的时候不需要人为在其末尾加入‘\0’
D、在C语言中,字符串常量隐含处理成以‘\0’结尾
41、阅读下面程序,则执行后的结果是:
#include“stdio.h”
main()
{charstr[]=”tomeetme”,*p;
for(p=str;pprintf(“\n”);
}A、tomeetmeB、tmemC、oeteD、tome
42、对以下说明语句的正确理解是:
inta[10]={6,7,8,9,10};
A、将5个初值依次赋给a[1]至a[5]
B、将5个初值依次赋给a[0]至a[4]
C、将5个初值依次赋给a[6]至a[10]
D、因为数组长度与初值的个数不相同,所以此语句不正确
43、以下程序有错,错误原因是:
main()
{int*p,i;
char*q,ch;
p=&i;q=&ch;
*p=40;*p=*q;
}
A、p和q的类型不一致,不能执行*p=*q;语句
B、*p中存放的是地址值,因此不能执行*p=40;语句
C、q没有指向具体的存储单元,所以*q没有实际意义
D、q虽然指向了具体的存储单元,但该单元中没有确定的值,所以执行*p=*q;没有意义,可能会影响后面语句的执行结果。
44、设p1和p2是指向一个int型一维数组的指针变量,k为int型变量,则不能正确执行的语句是
A、k=*p1+*p2B、p2=k;C、p1=p2;D、k=*p1*(*p2);
45、下列程序的输出结果是:
#include“stdio.h”
#defineN3
#defineM3
voidfun(inta[M][N])
{printf(“%d\n”,*(a[1]+2));}
main()
{inta[M][N];
inti,j;
for(i=0;ifor(j=0;ja[i][j]=i+j-(i-j);
fun(a);}
A、3B、4C、5D、6
46、阅读下面程序,则程序段的功能是:
#include“stdio.h”
main()
{intc[]={23,1,56,234,7,0,34},i,j,t;
for(i=1;i<7;i++)
{t=c[i];j=i-1;
while(j>=0&&t>c[j])
{c[j+1]=c[j];j--;}
c[j+1]=t;}
for(i=0;i<7;i++)
printf(“%d”,c[i]);
putchar(‘\n’);
}
A、对数组元素的升序排列B、对数组元素的降序排列
C、对数组元素的倒序排列D、对数组元素的随机排列
47、现有如下程序段
#include“stdio.h”
#include“string.h”
main()
{chara[]=”acfijk”;/*这里是有序的字符序列*/
charb[]=”befijklqswz”;/*这里是有序的字符序列*/
charc[80],*p;
inti=0,j=0,k=0;
while(a[i]!
=’\0’&&b[j]!
=’\0’)
{
if(a[i]
elseif(a[i]>b[j])c[k++]=b[j++];
else{c[k++]=b[j++];i++;}
}
while(a[i]==’\0’&&b[j]!
=’\0’)
c[k++]=b[j++];
while(a[i]!
=’\0’&&b[j]==’\0’)
c[k++]=a[i++];
c[k]=’\0’;
puts(c);}
则输出结果是:
A、acfijkbefijklqswzB、abceffiijjkklqswz
C、befijklqswzacfijkD、abcefijklqswz
48、下面程序段的运行结果是:
#include"string.h"
main()
{
charp[]="abcdefgh";
char*a;
a=p;
a+=3;
strcpy(a,"ABCD");
printf("%d\n",strlen(a));
}
A、8B、12C、4D、7
49、以下不正确的程序段是
A、charstr1[]=”12345”,str2[]=”abcdef”;
B、charstr[10],*st=”abcde”;strcat(str,st);
C、charstr[10]=””。
*st=”abcde”;strcat(str,st);
D、char*st1=”12345”;*st2=”abcde”;strcat(st1,st2);
50、有以下程序
voidswap(char*x,char*y)
{chart;
t=*x;*x=*y;*y=t;
}
main()
{chars1[]=”abc”,s2[]=”123”;
swap(s1,s2);printf(“%s,%s\n”,s1,s2);
}A、123,abcB、abc,123C、1bc,a23D、321,cba
51.设有代码“int(*ptr)[10];”,其中的ptr是()
①10个指向整型变量的指针