欲穷千里目,更上一层楼!
A) int a=b=0 ; B) char ?A?=65+1,b='b'; C) float a=1,*b=&a,*c=&b ; D) double a=0.0,b=1.1;
3.设已有定义:float x;则以下对指针变量p进行定义且赋初值的语句中正确的是D A) float *p=1024; B) int *p=(float x); C) float p=&x; D) float *P=&x;
第二节 指针变量赋值及运算 习题
1.设有定义:int n=0,*p=&n,**q=&p;,则以下选项中,正确的赋值语句是 D A)p=1; B)*q=2; C)q=p; D)*p=5; 2.有以下程序 main() {
int a=1,b=3,c=5;
int *p1=&a, *p2=&b, *p=&c; *p=*p1*(*p2); printf(\}
执行后的输出结果是 C A)1 B)2 C)3 D)4 3.设有定义:int n1=0,n2,*p=&n2,*q=&n1;,以下赋值语句中与n2=n1;语句等价的是 A A)*p=*q; B)p=q; C)*p=&n1; D)p=*q; 4.有以下程序
#include
int n,*p=NULL; *p=&n;
printf(\ scanf(\ printf(\ printf(\ }
该程序试图通过指针p为变量n读入数据并输出,但程序有多处错误,以下语句正确的是A A)int n,*p=NULL; B)*p=&n; C)scanf(\ D)printf(\
第三节 函数之间地址值的传递 习题
1.以下程序的功能是:利用指针指向3个整型变量,并通过指针运算找出3个数中的最大值,输出到屏幕上,请填空:*pmax=x; (或者max=x)
main() {
int x,y,z,max,*px,*py,*pz,*pmax; scanf(\
16
欲穷千里目,更上一层楼!
px=&x; py=&y; pz=&z;
pmax=&max;
__________________ if(*pmax<*py) *pmax=*py; if(*pmax<*pz) *pmax=*pz;
printf(\}
2.void f( int y, int *x) { y=y+*x; *x=*x+y;} main( )
{ int x=2,y=4; f(y,&x);
printf(\ %d\\n\}
执行后输出的结果是 。8 4
3.以下程序的输出结果是__________。 3 5 #include
void swap(int *a,int *b) {
int *t;
t=a; a=b; b=t; }
main() {
int i=3, j=5, *p=&i, *q=&j; swap(p,q);
printf(\ }
第七章 数 组
第一节 一维数组 习题
1.有以下程序段
int j; float y; char name[50]; scanf(\
当执行上述程序段,从键盘上输入55566 7777abc后,y的值为 B
A)55566.0 B)566.0 C)7777.0 2.有以下程序 main()
17
D)566777.0
欲穷千里目,更上一层楼!
{
char ch[]=\; pc=ch; printf(\}
程序运行后的输出结果是 A A)z B)0 C)元素ch[5]地址 D)字符y的地址 3.有以下程序 #include
int s[12]={1,2,3,4,4,3,2,1,1,1,2,3},c[5]={0},i; for(i=0;i<12;i++) c[s[i]]++;
for(i=1;i<5;i++) printf(\ printf(\ }
程序的运行结果是 C A)1 2 3 4 B)2 3 4 4 C)4 3 3 2 D)1 1 2 3
第二节 二维数组 习题
1.以下错误的定义语句是 C A)int x[][3]={{0},{1},{1,2,3}};
B)int x[4][3]={{1,2,3},{1,2,3},{1,2,3},{1,2,3}}; C)int x[4][]={{1,2,3},{1,2,3},{1,2,3},{1,2,3}}; D)int x[][3]={1,2,3,4};
2.若有定义:int a[2][3];,以下选项中对a数组元素正确引用的是 D A)a[2][!1] B)a[2][3] C)a[0][3] D)a[1>2][ !1]
3.若有定义语句:int a[3][6]; ,按在内存中的存放顺序,a数组的第10个元素是B A)a[0][4] B)a[1][3] C)a[0][3] D)a[1][4]
第三节 数组应用举例 习题
1.有以下程序 main()
{ int i,t[][3]={9,8,7,6,5,4,3,2,1}; for(i=0; i<3; i++) printf(\}
程序执行后的输出结果是B
A) 7 5 3 B) 3 5 7 C) 3 6 9 D) 7 5 1 2.有以下程序 main() { int a[4][4]={{1,4,3,2,},{8,6,5,7,},{3,7,2,5,},{4,8,6,1,}},i,k,t;
18
欲穷千里目,更上一层楼!
for(i=0;i<3;i++) for(k=i+i;k<4;k++) if (a[ i ][ i ]< a[ k ][ k ]) { t = a[ i ][ i ]; a[ i ][ i ]= a[ k ][ k ]; a[ k ][ k ]=t; }
For(i=0;i<4;i++)
printf(\}
程序运行后的输出结果是 B A)6,2,1,1, B)6,4,3,2, C)1,1,2,6, 3.有以下程序 main() {
int a[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(\}
程序运行后的输出结果是 A A)1,2,5,7, B)8,7,3,1, C)4,7,5,2,
第八章 字符串
第一节 字符串与字符串数组 习题
1.以下关于字符串的叙述正确的是 D A)C语言中有字符串类型的常量和变量
B)两个字符串中的字符个数相同时才能进行字符串大小的比较 C)可以用关系运算符对字符串的大小进行比较 D)空串一定比空格打头的字符串小 2.以下正确的字符串常量是 D A)\ B)'abc' C) OlympicGames 3.设有如下程序段 A char s[20]= \ p=s;
则执行p=s;语句后,以下叙述正确的是 A)可以用*p表示s[0]
B)s数组中元素的个数和p所指字符串长度相等
19
D)2,3,4,6,
D)1,6,2,1,
D)\
欲穷千里目,更上一层楼!
C)s和p都是指针变量
D)数组s中的内容和指针变量p中的内容相等 4.以下能正确定义字符串的语句是D
A)char str[]={' \\064'}; B)char str=\ C)char str=\ D)char str[]=\
第二节 字符串的输入输出 习题
1.当用户要求输入的字符串中含有空格时,应使用的输入函数是B
A) scanf() B) getchar() C) gets() D) getc() 2.有以下程序 #include
void fun(char *a,char *b) {
while(*a=='*') a++;
while(*b=*a) {b++;a++;} }
main() {
char *s=”****a*b****”,t[80]; fun(s,t); puts(t); }
程序的运行结果是 C
A) *****a*b B) a*b C) a*b**** D) ab
第三节 对字符串的操作 习题
1.若有定义:char *x=\,以下选项中正确运用了strcpy函数的是 D A)char y[10]; strcpy(y,x[4]); B)char y[10]; strcpy(++y,&x[1]); C)char y[10],*s; strcpy(s=y+5,x); D)char y[10],*s; strcpy(s=y+1,x+1); 2.有以下程序 #include
char p[20]={ 'a', 'b', 'c', 'd'},q[]=\strcat(p,r);
strcpy(p+strlen(q),q); printf(\}
程序运行后的输出结果是
A) 9 B) 6 C) 11 D) 7 3.有以下程序
20