admin 管理员组

文章数量: 887021


2024年2月18日发(作者:特效相机推荐)

★第1 题:

阅读程序,选择程序的运行结果 ___A___。

#include

main()

{ int x;

x=try(5);

printf( “%dn ”, x);

}

try(int n)

{ if(n>0) return(n*try(n-2));

else return(1);

}

A. 15

B. 120

C. 1

D. 前面3个答案均是错误的

第2 题:

在下列结论中,只有一个是正确的,它是 ___A___。

A. 递归函数中的形式参数是自动变量

B. 递归函数中的形式参数是外部变量

C. 递归函数中的形式参数是静态变量

D. 递归函数中的形式参数可以根据需要自己定义存储类型

★第3 题:

阅读程序,选择程序的输出结果 __A___。

#include

f(int x, int y)

{ return(y-x);

}

main()

{ int (*g )(int,int);

int a=5, b=6, c=2;

g=f;

c=(*g)(a,b);

printf( “%dn”, c);

}

A. 1

B. 2

C. 3

D. 前面3个答案均是错误的

第4 题:

阅读程序,选择程序的输出结果 __D___。

#include

char *p= ”abcdefghijklmnopq ”;

main()

{ while(*p++!=’e’);

printf( “%cn ”, *p);

}

A. c

B. d

C. e

D. f

★第6 题:

阅读程序,选择程序的输出结果 ___D___。

#include

void prtv(int *x)

{ printf( ”%dn ”, ++*x);

}

main()

{ int a=25;

prtv(&a);

}

A. 23

B. 24

C. 25

D. 26

第7 题:

阅读程序,选择程序的输出结果 ___B___。

#include

main()

{ static char a[ ]= ”language ”, b[]= ”program ”;

char *ptr1=a, *ptr2=b;

int k;

for(k=0; k<7; k++)

if(*(ptr1+k)==*(ptr2+k))

printf( ”%c”, *(ptr1+k));

}

A.

gae

B.

ga

C.

language

D. 有语法错误

★第8 题:

函数调用strcat(strcpy(str1, str2), str3) 的功能是__C___。

A. 将串str1复制到串str2中 ,然后再连接到 str3之后

B. 将串str1连接到串str2之后 ,再复制到 str3之中

C. 将串str2复制到串str1中 ,然后再将串 str3连接到串str1之后

D. 将串str2复制到串str1中,再将串str1连接到str3之后

★第9 题:

设有以下程序段,则在 main函数中使用语句__D___是无意义的。

main()

{ int min();

int a, b, c, (*p)();

p=min;

}

min(x, y)

int x, y;

{

}

A. printf( ”%dn ”, min(a,b));

B. c=min(a, b);

C. c=(*p)(a,b);

D. p++;

第10 题:

已知static int a[2][3]={2,4,6,8,10,12};

A. *(a+1)

正确表示数组元素地址的是 __A___。

B. *(a[1]+2)

C. a[1]+3

D. a[0][0]

第11 题:

已知int i, x[3][4]; 则不能将x[1][1]的值赋给变量i的语句是___C___。

A. i=*(*(x+1)+1)

B. i=x[1][1]

C. i=*(*(x+1))

D. i=*(x[1]+1)

★第12 题:

当c的值不为0时,在下列选项中能够将 c的值赋给变量a、 b的是___C____.

A. c=b=a;

B. (a=c)||(b=c);

C. (a=c)&&(b=c);

D. a=c=b;

第13 题:

函数的功能是交换变量x和y中的值,且通过正确调用返回交换的结果。能正确执行此

功能的函数是___D___。

A. funa(int *x, int *y)

{ int *p;

*p=x; *x=*y; *y=*p;

}

B. funb(int x, int y)

{ int t;

t=x; x=y; y=t;

}

C. func(int *x, int *y)

{ *x=*y; *y=*x;

}

D. fund(int *x, int *y)

{ *x=*x+*y; *y=*x-*y; *x=*x-*y;

}

第14 题:

已知int x[]={1,3,5,7,9,11}, *ptr=x;

A. *(ptr--)

B. *(--ptr)

C. *(ptr++)

则不能正确引用数组元素的语句是 ___B___。

D. *(++ptr)

第15 题:

已知int*ptr1, *ptr2; 均指向同一个int类型一维数组中的不同元素,k为int类型变量,

则下面错误的赋值语句是___B___。

A. k=*ptr1+*ptr2;

B. ptr2=k;

C. ptr1=ptr2;

D. k=*ptr1*(*ptr2);

★第16 题:

已知chars1[10], *s2=

___A____。

A. ab

B. cdef

”ab0cdef ”; 则执行语句strcpy(s1,s2); 后 ,变量s1的内容为

C. ab0cdef

D. 内容不定

第17 题:

以下有关宏替换叙述中,错误的是 ___D___。

A. 宏替换不占用运行时间

B. 宏无类型名

C. 宏替换只是字符替换

D. 宏名必须用大写字母表示

★第18 题:

C语言主函数main最多允许有___B___个参数。

A. 1

B. 2

C. 0

D. 3

★第19 题:

C语言的编译系统对宏定义是___D___。

A. 在程序运行时进行替换处理

B. 在程序连接时进行处理

C. 和源程序中其他C语句同时进行编译的

D. 在对源程序中其他成分正式编译之前进行处理的

第20 题:

已知int **p; 则变量p是___B___。

A. 指向int的指针

B. 指向指针的指针

C. int型变量

D. 以上3种说法均是错误的

★第21 题:

已知int i; char *s= ”a045+045 ’b” ; 执行语句for(i=0; *s++; i++); 之后,变量i

的结果是__B___。

A. 7

B. 8

C. 9

D. 以上3个答案都是错误的

第22 题:

已知int i=0, j=1, *p=&i, *q=&j;

A. i=*&j;

错误的语句是___D___。

B. p=&*&i;

C. j=*p++;

D. i=*&q;

第23 题:

已知int a[]={1,2,3,4,5,6,7,8,9,10,11,12}, *p=a; 则值为3的表达式是___A___。

A. p+=2, *(p++)

B. p+=2, *++p

C. p+=3, *p++

D. p+=2, ++*p

★第24 题:

已知int a[3][4], *p=a; p+=6; 那么*p和__D___的值相同。

A. *(a+6)

B. *(&a[0]+6)

C. *(a[1]+2)

D. *(&a[0][0]+6)

第25 题:

已知int a[4][3]={1,2,3,4,5,6,7,8,9,10,11,12}; int (*ptr)[3]=a, *p=a[0]; 则以下能够正

确表示数组元素a[1][2]的表达式是__D___。

A. *((ptr+1)[2])

B. *(*(p+5))

C. (*ptr+1)+2

D. *(*(a+1)+2)

第26 题:

已知char **s; 正确的语句是__B___。

A. s= ”computer ”;

B. *s=”computer ”;

C. **s= ”computer ”;

D. *s=’A’;

★第27 题:

已知char s[20]= ”programming ”, *ps=s; 则不能引用字母o的表达式是__A___。

A. ps+2

B. s[2]

C. ps[2]

D. ps+=2, *ps

第28 题:

已知char b[5], *p=b; 则正确的赋值语句是__C__。

A. b= ”abcd ”;

B. *b=”abcd ”;

C. p= ”abcd ”;

D. *p= ”abcd ”;

★第29 题:

已知char s[100]; int i; 则在下列引用数组元素的语句中,错误的表示形式是 ___D___.

A. s[i+10]

B. *(s+i)

C. *(i+s)

D. *((s++)+i)

第30 题:

已知char s[10], *p=s; 则下列语句中,错误的语句是 __B___。

A.

p=s+5;

B.

s=p+s;

C. s[2]=p[4]

D. *p=s[0];

第31题:(103)

以下程序的输出结果是___D___。

#include

main()

{

int x=10, y=10;

printf( “%d %dn ”, x--, --y);

}

A. 10 10

B. 9 9

C. 9 10

D. 10 9

第32 题:

已知double *p[6]; 它的含义是___C___。

A. p是指向double类型变量的指针

B. p是double类型数组

C. p是指针数组

D. p是数组指针

★第33 题:

说明语句int *(*p)(); 的含义是___D___。

A. p是一个指向int型数组的指针

B. p是指针变量,它构成了指针数组

C. p是一个指向函数的指针,该函数的返回值是一个整型

D. p是一个指向函数的指针,该函数的返回值是一个指向整型的指针

第34 题:

已知int a, *p=&a; 则下列函数调用中错误的是 ___D___。

A. scanf(”%d”, &a);

B. scanf(”%d”, p);

C. printf(”%d”, a);

D. printf(”%d”, p);

第35 题:

已知int *p, a; 则语句p=&a; 中的运算符&的含义是___D___。

A. 位与运算

B. 逻辑与运算

C. 取指针内容

D. 取变量地址

第36 题:

下面程序的功能是将字符串 s中所有的字符“c”删除。 请选择填空。

# include

main()

{ char s[80];

int i, j;

gets(s);

for(i=j=0; s[i]!=’ 0’; i++)

if(s[i]!=’c’) ___A____

s[j]!=’0’;

puts(s);

}

A. s[j++]=s[i];

B. s[++j]=s[i];

C. s[j]=s[i]; j++;

D. s[j]=s[i]

第37 题:

阅读下列程序,选择程序的运行结果 ___B___。

#include

main()

{ int i, k, a[10], p[3];

k=5;


本文标签: 程序 语句 数组 指针 错误