国二c语言笔试题库(专升本会出40分的题) 下载本文

D) char *s; scanf(“%s”,s); 53.以下程序的输出结果是( )。 fun(int *s, int n1, int n2) {int i, j, t; i=n1; j=n2; while(i

{t=*(s+i); *(s+i)=*(s+j); *(s+j)=t; i++; j--; } }

main( )

{int a[10]={1, 2, 3, 4, 5, 6, 7, 8, 9, 0}, i, *p=a; fun (p, 0, 3); fun (p, 4, 9); fun (p, 0, 9);

for(i=0; i<10; i++) printf(\; printf(“\\n”); }

A) 0 9 8 7 6 5 4 3 2 1 B) 4 3 2 1 0 9 8 7 6 5 C) 5 6 7 8 9 0 1 2 3 4 D) 0 9 8 7 6 5 1 2 3 4 54.下面函数的功能是( )。 sss (char *s, char *t)

{while((*s)&&(*t)&&(*t= =*s)) s++, t++; return(*s-*t); }

A) 求字符串的长度 B) 比较两个字符串的大小

C) 将字符串s复制到字符串t中 D) 将字符串s连接到字符串t中 55.以下程序段给数组所有的元素输入数据,则以下正确答案为( )。 main()

{int a[10], i=0;

while (i<10) scanf(“%d”, ); ? }

A) a+(i++) B) &a[i+1] C) a+i D) &a[++i] 56.在下列叙述中,正确的一条是( )。 A) 语句int *pt中的*pt是指针变量名

B) 语句int *p=a;等价于int *p; p=&a[0]; C) 运算符*和&都是取变量地址的运算符

D) 已知指针变量p指向变量a,则&a和*p值相同,都是变量a的值 57.下列语句执行后的结果是( )。 y=5; p=&y; x=*p++; A) x=5,y=5 B) x=5,y=6 C) x=6, y=5 D) x=6, y=6 58.在下列语句中,其含义为“p为带回一个指针的函数,该指针指向整型数据”的定义语句是( )。

A) int *p(); B) int **p; C) int (*p)(); D) int *p;

59.在下面关于指针的说法中,错误的一条是( )。 A) 变量的指针就是变量的地址

B) 可以将一个整型量或任何其他非地址类型的数据赋给一个指针变量 C) 一个指针变量只能指向同一个类型的变量 D) 指针变量中只能存放地址

60.在下列程序中,输出结果与其它程序不同的是( )。 A) main()

{int a[10]; int i;

for(i=0;i<10;i++) scanf(“%d”,&a[i]); printf(“\\n”);

for(i=0;i<10;i++) printf(“%d”,a[i]); }

B) main()

{int a[10]; int i;

for(i=0;i<10;i++) scanf(“%d”,&a[i]); printf(“\\n”);

for(i=0;i<10;i++) printf(“%d”,*(a+i)); }

C) main()

{int a[10]; int i, *p;

for(i=0;i<10;i++) scanf(“%d”,&a[i]); printf(“\\n”);

for(p=a;p<(a+10);p++) printf(“%d”,*p); }

D) main()

{int a[10]; int i, *p;

for(i=0;i<10;i++) scanf(“%d”,&a[i]); printf(“\\n”);

for(i=0;i<10;i++) printf(“%d”,*(p+i)); }

61.以下程序的输出结果是( )。 sub(int *s, int y) {static int t=3; y=s[t]; t--; }

main()

{int a[ ]={1, 2, 3, 4}, n; int x=4;

for(n=0; n<4; n++)

{sub(a, x); printf(“%d”, x); }

printf(“\\n”); }

A) 1234 B) 3333 C) 4321 D) 4444 62.以下程序的输出结果为( )。 #idefine FORMAT “%u, %u” main()

{int a[3][4]={1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23}; printf(“\\n”);

printf(FORMAT, **a, *a[0]);

printf(FORMAT, *(a[0]+1), *&a[0][1]); printf(FORMAT, a[1][1], *(*(a+1)+1)); }

A) 3,3 5,5 9,9 B) 1,1 3,3 9,9 C) 1,1 3,3 5,5 D) 5,5 7,7 9,9 63.以下程序的输出结果为( )。 f(char *s) {char *p=s;

while(*p!=?\\0?) p++; return(p-s); }

main()

{ printf(“%d\\n”, f(“12345678”)); }

A) 12345678 B) 7 C) 1 64.以下程序的输出结果为( )。 move(int array[6], int n, int m) {int *p, array_end;

array_end=*(array+n-1); for(p=array+n-1;p>array;p--) *p=*(p-1);

*array=array_end; m--;

if(m>0) move (array, n, m); }

main()

{static int number[6]={1, 2, 3, 4, 5, 6}; int m=4, j;

move(number, 6, m); for(j=0;j<5;j++)

printf(“%d,”, number[i]); printf(“%d”, number[5]); }

A) 1,2,3,4,5,6 B) 6,5,4,3,2,1 C) 3,4,5,6,1,2 D) 6,1,2,3,4,5 65.在下列叙述中,正确的一条是( )。

D) 8 A) 以下程序运行结果为Computer and c: main()

{char str[4];

str=“Computer and c”; printf(“%s\\n”, str); }

B) 下面两种表示方式等价 (1) int fun(int x,int y) (2) int fun(x,y) int x,y;

C) 若输入1、2,以下程序的运行结果为12 main()

{int *p,i,a[2]; p=a;

for(i=0;i<2;i++) scanf(“%d”,p++); for(i=0;i<2;i++,p++) printf(“%d”,*p); }

D) 以下程序的运行结果为3 main()

{int *p,a[5]={1,3,4,5,6}; p=a;

printf(“%d”,*p++); }

66.以下程序的输出结果是( )。 point(char *pt); main()

{char b[4]={?a?, ?c?, ?s?, ?f?}, *pt=b; point(pt);

printf(“%c\\n”, *pt); }

point(char *p) {p+=3; }

A) a B) c C) s D) f 67.以下程序的输出结果为( )。 void move(int *pointer) {int i, j, t;

for(i=0; i<3; i++) for(j=i; j<3; j++) {t=*(pointer+3*i+j);

*(pointer+3*i+j)=*(pointer+3*j+i); *(pointer+3*j+i)=t; } }