type
status
date
slug
summary
tags
category
icon
password

一.单选题(total60 questions,100.0mark)

1

【Single Choice】有如下程序int a[10]={1,2,3,4,5,6,7,8,9,10};int *p=&a[3],b;b=p[5];则b的值是( ).
A、5 • B、6 • C、9 • D、8
My Answer:C:
9
;

2

【Single Choice】函数fun的返回值是( ).fun(char *a,char *b){ int num=0,n=0;  while(*(a+num)!='\0') num++;  while(b[n]){*(a+num)=b[n];num++;n++;}  return num;}
A、字符串a的长度 • B、字符串b的长度 • C、字符串a和b的长度之差 • D、字符串a 和b的长度之和
My Answer:D:
字符串a 和b的长度之和
;

3

【Single Choice】有以下程序main( ){ int  a[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],*q=p+2;  printf("%d\n",*p+*q); }程序运行后的输出结果是( ).
A、16 • B、10 • C、8 • D、6
My Answer:B:
10
;

4

【Single Choice】有如下程序段int *p,a=10,b=1;p=&a; a=*p+b;执行该程序段后,a的值为( ).
A、12 • B、11 • C、10 • D、编译出错
My Answer:B:
11
;

5

【Single Choice】下面程序的输出结果是( ).main( ){ int a[]={1,2,3,4,5,6,7,8,9,0},*p;  p=a;  printf("%d\n",*p+9); }
A、0 • B、1 • C、10 • D、9
My Answer:C:
10
;

6

【Single Choice】若有以下程序int a[]={2,4,6,8};main( ){ int i;  int *p=a;  for(i=0;i<4;i++) a[i]=*p;  printf("%d\n",a[2]); }上面程序输出结果是( ).
A、6 • B、8 • C、4 • D、2
My Answer:D:
2
;

7

【Single Choice】下面程序的运行结果是( ).main( ){ static char a[]="Language",b[]="programe";  char *p1,*p2;int k;  p1=a; p2=b;  for(k=0; k<=7; k++)   if(*(p1+k)==*(p2+k))       printf("%c",*(p1+k)); }
A、gae • B、ga • C、Language • D、有语法错
My Answer:A:
gae
;

8

【Single Choice】下面说明语句中,语法不正确的是( ).
A、char a[10]="china"; • B、char a[10],*p=a;p="china"; • C、char *a;a="china"; • D、char a[10],*p;p=a="china";
My Answer:D:
char a[10],*p;p=a="china";
;

9

【Single Choice】下面程序的运行结果是( ).#include "stdio.h"#include "string.h"main( ){ char *s1="AbDeG";  char *s2="AbdEg";  s1+=2;s2+=2;  printf("%d\n",strcmp(s1,s2));}
A、正数 • B、负数 • C、零 • D、不确定的值
My Answer:B:
负数
;

10

【Single Choice】若有定义int a[9],*p=a;则p+5表示( ).
A、数组元素a[5]的值 • B、数组元素a[5]的地址 • C、数组元素a[6]的地址 • D、数组元素a[0]的值加上5
My Answer:A:
数组元素a[5]的值
;

11

【Single Choice】设有定义:char p[]={'1','2','3'},*q=p;,以下不能计算出一个char型数据所占字节数的表达式是( ).
A、sizeof(p) • B、sizeof(char) • C、sizeof(*q) • D、sizeof(p[0])
My Answer:A:
sizeof(p)
;

12

【Single Choice】若要对a进行++运算,则a应具有下面( )说明.
A、int a[3][2]; • B、char *a[]={"12","ab"}; • C、char (*a)[3]; • D、int b[10],b=*a;
My Answer:C:
char (*a)[3];
;

13

【Single Choice】若有定义:int a[2][3];则对a数组的第i行第j列(假设i,j已正确说明并赋值)元素值的正确引用为( ).
A、*(*(a+i)+j) • B、(a+i)[j] • C、*(a+i+j) • D、*(a+i)+j
My Answer:A:
  • (*(a+i)+j)
;

14

【Single Choice】若有以下定义和语句:int a[10]={1,2,3,4,5,6,7,8,9,10} ; *p=a ;则不能表示a数组定义的元素的表达式是( ).
A、*p • B、a[10] • C、*a • D、a[p-a]
My Answer:B:
a[10]
;

15

【Single Choice】下面程序的运行结果是( ).void delch(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 *item="a34bc";  delch(item);  printf("\n%s",item); }
A、abc • B、34 • C、a34 • D、a34bc
My Answer:B:
34
;

16

【Single Choice】以下程序的输出结果是( ).void fun (float *p1, float *p2, float *s){ *s=*p1+*p2++; }main( ){ float a[2]={1.1,2.2},b[2]={10.0,20.0},*s=a;  fun(a,b,s);  printf("%5.2f\n",*s); }
A、11.10 • B、12.00 • C、21.10 • D、1.10
My Answer:A:
11.10
;

17

【Single Choice】有以下程序void fun(int n,int *p){ int f1,f2;  if(n==1||n==2) *p=1;  else  { fun(n-1,&f1);    fun(n-2,&f2);    *p=f1+f2;} }main( ){ int s;  fun(3,&s);  printf("%d\n",s);}程序的运行结果是( ).
A、2 • B、3 • C、4 • D、5
My Answer:A:
2
;

18

【Single Choice】下面程序段的运行结果是( ).char *s="abcde";s+=2;printf("%d",s);
A、cde • B、字符'c' • C、字符'c'的地址 • D、无确定的输出结果
My Answer:A:
cde
;

19

【Single Choice】若有说明: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;
My Answer:D:
p=&n;*p=m;
;

20

【Single Choice】下面程序段的运行结果是( ).char a[]="language",*p;p=a;while(*p!='u'){printf("%c",*p-32);p++;}
A、LANGUAGE • B、language • C、LANG • D、langUAGE
My Answer:C:
LANG
;

21

【Single Choice】设p1和p2是指向一个int型一维数组的指针变量,k为int型变量,则不能正确执行的语句是( ).
A、k=*p1+*p2; • B、p2=k; • C、p1=p2; • D、k=*p1;
My Answer:B:
p2=k;
;

22

【Single Choice】设p1和p2是指向同一个字符串的指针变量,c为字符变量,则以下不能正确执行的赋值语句是( ).
A、c=*p1+*p2; • B、p2=c; • C、p1=p2; • D、c=*p1*(*p2);
My Answer:B:
p2=c;
;

23

【Single Choice】有以下程序void f(int *q){ int i=0;  for(;i<5; i++) (*q)++;}main( ){ int a[5] ={1,2,3,4,5}, i;  f(a);  for(i=0;i<5; i++) printf("%d,", a[i]);}程序运行后的输出结果是( ).
A、2,2,3,4,5, • B、6,2,3,4,5, • C、1,2,3,4,5, • D、2,3,4,5,6,
My Answer:B:
6,2,3,4,5,
;

24

【Single Choice】阅读下列程序,则执行后的结果为( ).main( ){ int c[][4]={1,2,3,4,5,6,7,34,213,56,62,3,23,12,34,56};  printf("%x,%x\n",c[2][2],*(*(c+1)+1));}
A、3e,6 • B、62,5 • C、56,5 • D、62,6
My Answer:A:
3e,6
;

25

【Single Choice】阅读下面程序,则执行后的结果是( ).#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
My Answer:B:
tmem
;

26

【Single Choice】下面程序段的运行结果是( ).char *p="abcdefgh";p+=3;printf("%d\n",strlen(strcpy(p,"ABCD")));
A、8 • B、12 • C、4 • D、7
My Answer:C:
4
;

27

【Single Choice】阅读下列程序,则在执行后,程序的运行结果为( ).#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
My Answer:D:
nice to you
;

28

【Single Choice】有以下程序void f(int  n, int  *r){ int rl=0;  if (n%3==0) r1=n/3;  else if(n%5==0) r1=n/5;  else f(--n, &r1);  *r=r1;}main( ){ int m=7, r;  f(m,&r);     printf("%d", r);}程序运行后的输出结果是( ).
A、2 • B、1 • C、3 • D、0
My Answer:A:
2
;

29

【Single Choice】设有下面的程序段:char s[]="china";char *p;p=s;则下列叙述正确的是( ).
A、s和p完全相同 • B、数组s中的内容和指针变量p中的内容相同 • C、s数组长度和p所指向的字符串长度相等 • D、*p与s[0]相等
My Answer:D:
  • p与s[0]相等
;

30

【Single Choice】有以下程序void ss(char *s,char t){ while(*s)  { if(*s==t) *s=t-'a'+'A';    s++; } }main( ){ char str1[100]="abcddfefdbd",c='d';  ss(str1,c);   printf("%s\n",str1); }程序运行后的输出结果是( ).
A、ABCDDEFEDBD • B、abcDDfefDbD • C、abcAAfefAbA • D、Abcddfefdbd
My Answer:B:
abcDDfefDbD
;

31

【Single Choice】有下面程序段#include "string.h"main( ){ char a[3][20]={{"china"},{"isa"},{"bigcountry!"}};  char k[100]={0},*p=k;  int i;  for(i=0;i<3;i++)    { p=strcat(p,a[i]);}  i=strlen(p);  printf("%d\n",i);}则程序段的输出结果是( ).
A、18 • B、19 • C、20 • D、21
My Answer:B:
19
;

32

【Single Choice】请选出以下程序的输出结果main( ){ int a[]={1,2,3,4},i;  int x=0;  for(i=0;i<4;i++)   { sub(a,x);printf("%d",x);}  printf("\n"); }sub(s,y)int *s,y;{ static int t=3;  y=s[t];t--; }
A、1 2 3 4 • B、4 3 2 1 • C、0 0 0 0 • D、4 4 4 4
My Answer:C:
0 0 0 0
;

33

【Single Choice】以下叙述中正确的是( ).
A、构成C程序的基本单位是函数 • B、可以在一个函数中定义另一个函数 • C、main( )函数必须放在其他函数之前 • D、所有被调用的函数一定要在调用之前进行定义
My Answer:D:
所有被调用的函数一定要在调用之前进行定义
;

34

【Single Choice】若有定义: char *st= "how are you "; 下列程序段中正确的是( ).
A、char a[11], *p; strcpy(p=a+1,&st[4]); • B、char a[11]; strcpy(++a, st); • C、char a[11]; strcpy(a, st); • D、char a[], *p; strcpy(p=&a[1],st+2);
My Answer:A:
char a[11], *p; strcpy(p=a+1,&st[4]);
;

35

【Single Choice】对下述程序的判断中,正确的是( ).#include "stdio.h"void main( ){ char*p,s[128];  p=s;  while(strcmp(s,"End"))    { printf("请输入一个字符串:");      gets(s);      while(*p)      putchar(*p++); } }
A、此程序循环接收字符串并输出,直到接收字符串"End"为止 • B、此程序循环接收字符串,接收到字符串"End"则输出,否则程序终止 • C、此程序循环接收字符串并输出,直到接收字符串"End"为止,但因为代码有错误,程序不能正常工作 • D、此程序循环接收字符串并将其连接在一起,直到接收字符串"End"为止,输出连接在一起的字符串
My Answer:A:
此程序循环接收字符串并输出,直到接收字符串"End"为止
;

36

【Single Choice】若有定义和语句int *point,a=4;point=&a;下面均代表地址的一组选项是( ).
A、a,point,*&a • B、&*a,&a,*point • C、*&point,*point,&a • D、&a,&*point,point
My Answer:D:
&a,&*point,point
;

37

【Single Choice】现有如下定义:int a,b,*p,*q;,则下列赋值语句错误的是( ).
A、p=&a; • B、q=&b; • C、p=q; • D、p=a;
My Answer:D:
p=a;
;

38

【Single Choice】有以下程序void fun(char *t,char *s){ while(*t!=0) t++;  while((*t++=*s++)!=0);}main( ){ char ss[10]="acc",aa[10]="bbxxyy";  fun(ss,aa); printf("%s,%s\n",ss,aa);}程序的运行结果是( ).
A、accxyy,bbxxyy • B、acc,bbxxyy • C、accxxyy,bbxxyy • D、accbbxxyy,bbxxyy
My Answer:D:
accbbxxyy,bbxxyy
;

39

【Single Choice】有以下函数int aaa(char *s){ char *t=s;  while(*t++);  t--;  return(t-s);}以下关于aaa函数的功能的叙述正确的是( ).
A、求字符串s的长度 • B、比较两个串的大小 • C、将串s复制到串t • D、求字符串s所占字节数
My Answer:A:
求字符串s的长度
;

40

【Single Choice】有以下语句,则对a数组元素的引用不正确的是( )(0≤i≤9)int a[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))
My Answer:D:
  • (*(a+i))
;

41

【Single Choice】有以下函数int fun(char *s){ char *t=s;  while(*t) t++;  return(t-s);}该函数的功能是( ).
A、比较两个字符串的大小 • B、计算s所指字符串占用内存字节的个数 • C、计算s所指字符串的长度 • D、将s所指字符串复制到字符串t中
My Answer:C:
计算s所指字符串的长度
;

42

【Single Choice】下面程序段的运行结果是( ).char str[]="ABC",*p=str;printf("%d\n",*(p+3));
A、67 • B、0 • C、字符'C'的地址 • D、字符'C'
My Answer:B:
0
;

43

【Single Choice】以下程序执行后x的值是( ).main( ){ int x,y=252,i=386,*m=&y,*z=&i;  x=(z==y);  printf("%d",x); }
A、252 • B、1 • C、0 • D、运行时出错,x无定值
My Answer:C:
0
;

44

【Single Choice】下列程序执行后的输出结果是( ).main( ){ int a[3][3],*p,i;  p=&a[0][0];  for(i=1; i<9; i++) p[i]=i+1;  printf("%d\n",a[1][2]);}
A、3 • B、6 • C、9 • D、随机数
My Answer:B:
6
;

45

【Single Choice】下面程序段的运行结果是( ). char  *s="abcde"; s+=2; printf("%s",s);
A、cde • B、字符'c' • C、字符'c'的地址 • D、无确定的输出结果
My Answer:A:
cde
;

46

【Single Choice】执行以下程序后,a,b的值分别为( ).main( ){ int a,b,k=4,m=6,*p1=&k,*p2=&m;  a=p1==&m;  b=(*p1)/(*p2)+7;  printf("a=%d\n",a);  printf("b=%d\n",b); }
A、-1,5 • B、1,6 • C、0,7 • D、4,10
My Answer:C:
0,7
;

47

【Single Choice】有以下程序main( ){ char ch[]="uvwxyz",*pc;  pc=ch;printf("%c\n",*(pc+5));}程序运行后的输出结果是
A、z • B、0 • C、元素ch[5]的地址 • D、字符y的地址
My Answer:A:
z
;

48

【Single Choice】下面程序段中,输出*的个数是( ).char *s="\ta\018bc";for(;*s!='\0';s++)printf("*");
A、9 • B、5 • C、6 • D、7
My Answer:C:
6
;

49

【Single Choice】以下叙述中错误的是( ).
A、改变函数形参的值,不会改变对应实参的值 • B、函数可以返回地址值 • C、可以给指针变量赋一个整数作为地址值 • D、当在程序的开头包含头文件stdio.h时,可以给指针变量赋NULL
My Answer:A:
改变函数形参的值,不会改变对应实参的值
;

50

【Single Choice】下列程序的输出结果是( ).#define N 3#define M 3void fun(int a[M][N]){ printf("%d\n",*(a[1]+2));}main( ){ int a[M][N];  int i,j;  for(i=0;i<M;i++)   for(j=0;j<N;j++)    a[i][j]=i+j-(i-j);  fun(a);}
A、3 • B、4 • C、5 • D、6
My Answer::B
B [解析] 若有以下定义:int a[3][4],i,j;且0<=i<3,0<=j<4,则可以用以下几种方式来引用数组中的第i行、第j列的元素:a[i][j], (a[i]+j), ((a+i)+j), ((a+i))[j], (&a[0][0]+4i+j)。

51

【Single Choice】下列程序的运行结果为( ).void abc(char *str){ int a,b;  for(a=b=0;str[a]!='\0';a++)  if(str[a]!='c')  {str[b]=str[a]; b++; }str[b]='\0';}main( ){ char str[]="abcdef";  abc(str);  printf("str[]=%s",str); }
A、str[]=abdef • B、str[]=abcdef • C、str[]=a • D、str[]=ab
My Answer:A:
str[]=abdef
;

52

【Single Choice】以下程序的输出结果是( ).int fun(int n,int *s){ int f1,f2;  if(n==0‖n==1)  *s=1;  else    { fun(n-1,&f1);      fun(n-2,&f2);      *s=f1+f2;    } }main( ){ int x;  fun(6,&x);  printf("\n%d" ,x); }
A、7 • B、13 • C、9 • D、10
My Answer:B:
13
;

53

【Single Choice】下面程序的输出结果是( ).#include "string.h"main( ){ char *p1="abc",*p2="ABC",str[50]= "xyz";  strcpy(str+2,strcat(p1,p2));  printf("%s\n",str); }
A、xyzabcABC • B、zabcABC • C、xyabcABC • D、yzabcABC
My Answer:C:
xyabcABC
;

54

【Single Choice】有以下程序main( ){ int n,*p=NULL;  *p=&n;  printf("输入 n:");      scanf("%d",&p);  printf("输出 n:"); printf("%d\n",p);}该程序试图通过指针p为变量n读入数据并输出,但程序有多处错误,以下语句正确的是( ).
A、intn,*p=NULL; • B、*p=&n; • C、scanf("%d",&p); • D、printf("%d\n",p);
My Answer:A:
intn,*p=NULL;
;

55

【Single Choice】若在定义行:int a,b,c,*p=&c;之后,接着执行以下选项中的语句,则能正确给变量赋值的是( ).
A、scanf("%d",a,b,c); • B、scanf("%d%d%d",a,b,c); • C、scanf("%d",p); • D、scanf("%d",&p);
My Answer:C:
scanf("%d",p);
;

56

【Single Choice】若有以下定义,则对a数组元素的正确引用是( ). int a[5],*p=a;
A、*&a[5] • B、a+2 • C、*(p+2) • D、*(a+5)
My Answer:C:
  • (p+2)
;

57

【Single Choice】有以下函数int fun(char *s){ char *t=s;  while(*t++);  return(t-s);}该函数的功能是( ).
A、比较两个字符串的大小 • B、计算s所指字符串占用内存字节的个数 • C、计算s所指字符串的长度 • D、将s所指字符串复制到字符串t中
My Answer:C:
计算s所指字符串的长度
;

58

【Single Choice】有以下程序void fun(int *a,int n){ int  t,i,j;  for(i=0;i<n-1;i++)  for(j=i+1;j<n;j++)  if(a[i]<a[j]) { t=a[i];a[i]=a[j];a[j]=t;} }main( ){ int c[10]={1,2,3,4,5,6,7,8,9,0},i;  fun(c+4,6);  for(i=0;i<10;i++) printf("%d,",c[i]);  printf("\n");}程序的运行结果是( ).
A、1,2,3,4,5,6,7,8,9,0, • B、0,9,8,7,6,5,1,2,3,4, • C、0,9,8,7,6,5,4,3,2,1, • D、1,2,3,4,9,8,7,6,5,0,
My Answer:D:
1,2,3,4,9,8,7,6,5,0,
;

59

【Single Choice】有以下函数int fun(char *s){ char *t=s;  while(*t) ++t;  return(t-s);}该函数的功能是( ).
A、比较两个字符串的大小 • B、计算s所指字符串占用内存字节的个数 • C、计算s所指字符串的长度 • D、将s所指字符串复制到字符串t中
My Answer:C:
计算s所指字符串的长度
;

60

【Single Choice】下列程序执行后的输出结果是( ).void func(int *a,int b[]){ b[0]=*a+6; }main( ){ int a,b[5];  a=0; b[0]=3;  func(&a,b);   printf("%d\n",b[0]); }
A、6 • B、7 • C、8 • D、9
My Answer:A
C语言程序设计 测验题八C语言程序设计 测验题六
Loading...