C语言练习题2014-1(7)

2019-08-31 12:35

x ++;

printf(\

}

9.若有以下程序,执行后输出结果是 。 int f(int x,int y)

{ return((y-x)*x); } main()

{ int a=3,b=4,c=5,d; d=f(f(3,4),f(3,5)); printf(\}

10. 假如在运行程序时输入5 ,写出程序的运行情况及最终结果: 。

float fac(int n) { float f ;

if(n<0){printf(“n<0,dataerror!”);

f=-1;}

else if (n==0||n==1) f=1;

else f=fac(n-1)*n; return(f);

} main( ) {int n ; float y ;

printf(“input a integer number:”); scanf(“%d”,&n); y=fac(n);

printf(“%d!=%5.0f”, n,y); }

11.下面程序的运行结果是: 。 func( int x, int y) { int z;

z=x+y; return(z); } main( )

{ int a=6, b=7, c=8, r;

r=func( ( a--, b++, a+b), c--);

printf(“%d”, r) ; }

12.下面程序的运行结果是: 。 func( int a) { int b=0,c=3;

b++;c++; return(a+b+c);} main( ) { int a=2,i;

for(i=0;i<3;i++)

printf(“%d”,func(a)); }

13. 下面程序的运行结果是: 。 main( ) { int i=5 ;

printf(“%d\\n”, sub(i) ); } sub( int n) { int a;

if(n==1) a=1;

else a= n+sub(n-1); return(a); }

14.下面程序的运行结果是:___________。 main( ) { int i=2,p; p=f( i++, ++i ); printf(“%d”, p); } int f( int a, int b ) { int c;

if(a>b) c=1;

else if(a==b) c=0; else c=-1; return(c); }

15. 以下程序的运行结果是:____________。 main( )

{ int a[3][3] = { 1, 3, 5, 7, 9, 11, 13, 15, 17 } ; int sum ;

sum = func ( a ) ;

printf ( “\\nsum = %d\\n”, sum ) ; }

func ( int a[ ][3] ) { int i, j, sum = 0;

for ( i=0; i<3; i++ ) for ( j=0; j<3; j++ ) { a[i][j] = i + j ;

if ( i==j ) sum = sum + a[i][j] ; } return ( sum ); }

第七

一、选择题

1.变量的指针,其含义是指该变量的 。

A)值 B)地址 C)名 D)一个标志 2.设有说明 int (﹡ptr)[M];其中ptr是 。

A) M个指向整型变量的指针

B) 指向M个整型变量的函数指针

C) 一个指向具有M 个整型元素的一维数组的指针

D) 具有 M个指针元素的一维指针数组,每个元素都只能指向整型量 4.如下程序的执行结果是 。 # include main( )

{int i; char ﹡s=〞a\\\\\\\\\\n 〞;

for( i=0; s[i]!=?\\0?;i++) printf(〞%c 〞,﹡(s+i)); } A)a B)a\\ C)a\\\\ D)a\\\\\\\\ 5.如下程序的执行结果是 。 # include

main() { static int a[ ]={1,2,3,4,5,6}; int ﹡p; p=a;

﹡(p+3)+=2; printf(〞%d,%d\\n 〞,﹡p,﹡(p+3)); }

A)1,3 B)1,6 C)3,6 D)1,4 6.如下程序的执行结果是 。 # include

main( ) { static int a[ ][4]={1,3,5,7,9,11,13,15,17,19,21,23};

int (﹡p)[4], i=1,j=2; p=a;

printf(〞%d \\n 〞, ﹡(﹡(p+i)+j)); }

A)9 B)11 C)13 D)17

7.若有以下定义,则对a数组元素的正确引用是 。 int a[5], ﹡p=a;

A)﹡&a[5] B)a+2 C)﹡(p+5) D)﹡(a+2)

8.若有以下定义,则对a数组元素地址的正确引用是 。

int a[5], ﹡p=a;

A)p+5 B)﹡a+1 C)&a+1 D)&a[0]

9.若有定义: 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 11.设有下面的程序段: char s[ ]= 〞china 〞; char ﹡p; p=s; 则下列叙述正确的是 。

A)s和p完全相同 B)数组s中的内容和指针变量p中的内容相等 C)s数组长度和p所指向的字符串长度相等 D)﹡p与s[0]相等

12.若有语句:char s1[ ]= 〞string 〞, s2[8],﹡s3,﹡s4= 〞string2 〞;则对库函数strcpy的错误调用是 。

A)strcpy(s1, 〞string2 〞); B)strcpy(s4, 〞string1 〞); C)strcpy(s3, 〞string1 〞); D)strcpy(s1, s2);

13.若有定义:int a[5];则a数组中首元素的地址可以表示为 。

A)&a B)a+1 C)a D)&a[1] 14.以下与int ﹡q[5];等价的定义语句是 。

A)int q[5] B)int ﹡q

C)int ﹡(q[5]); D)int (﹡q)[5];

15.若有int a[5], ﹡p=a;定义,则﹡(p+5)表示 。

A)元素a[5]的地址 B)元素a[5]的值 C)元素a[6]的地址 D)元素a[6]的值

16.若有定义:int ﹡p[4];则标识符p 。

A)是一个指向整型变量的指针 B)是一个指针数组名

C)是一个指针,它指向一个含有四个整型元素的一维数组 D)说明不合法

17.若有语句int *point,a=4;和point=&a;下面均代表地址的一组选项是 。

A)a,point,*&a B) &*a,&a,*point C)*&point,*point,&a D) &a,&*point,point 18.若有说明: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; 19.下面程序段的运行结果是 。

char str[ ]=“ABC”,*p=str; printf(“%s\\n”,*(p+1));

A) 66 B) BC C)字符?B?的地址 D)字符?B?

20.已有定义int k=2, *ptr1,*ptr2;且ptr1和ptr2均已指向同一个变量k,下面不正确执行的赋值语句是: 。

A) k=*ptr1+*ptr2 ; B) ptr2=k; C) ptr1=ptr2; D)k=*ptr1*(*ptr2); 24.有以下程序 main()

{ char *s[]={\p=s[1];

printf(\}

执行后输出结果是 。

A) n,two B) t,one C) w,one D) o,two 25.有以下程序 main()

{ int x[8]={8,7,6,5,0,0},*s; s=x+3;

printf(\}

执行后输出结果是 。

A) 随机值 B) 0 C) 5 D) 6 26.有以下程序 main()

{ char str[]=\while(*ps) ps++;

for(ps--;ps-str>=0;ps--) puts(ps);}

执行后输出结果是 。

A) yz<回车>xyz B) z<回车>yz

C) z<回车>yz<回车>xyz D) x<回车>xy<回车>xyz 30.有如下程序段 int *p,a=10,b=1 p=&a; a=*p+b;

执行该程序段后,a的值为 。

A) 12 B) 11 C) 10 D) 编译出错

31.对于基类型相同的两个指针变量之间,不能进行的运算是 。

A)< B) = C) + D) –

32.以下函数返回a所指数组中最小的值所在的下标值。

fun(int *a, int n) { int i,j=0,p; p=j;

for(i=j;i在下划线处应填入的是 。

A) i=p B) a[p]=a[i] C) p=j D) p=i

33.有如下说明

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

A) *p+9 B) *(p+8) C) *p+=9 D) p+8

36.执行以下程序后,a的值为 。 int *p, a = 10, b=1; p = &a; a = *p*b;

A) 12 B) 编译出错 C) 10 D) 1

37.以下各语句或语句组中,正确的操作是 。

A) char s[5]=\B) char *s; gets(s);

C) char *s; s=\ D) char s[5]; scanf(\

38.若已定义:int a[9],*p=a;并在以后的语句中未改变p的值,则不能表示a[1]地址的表达式是 。

A) p+1 B) a+1 C) a++ D) ++p

39.下列语句行中,哪些语句能正确进行字符串赋值操作 。

A) char st[4][5]

B) char s[5]={?A?, ?B?, ?C?, ?D?, ?E?} C) char *s; s = “ABCDE”; D) char *s; scanf(“%s”,s);

40.以下程序的输出结果是 。 #include void main(void)

{ char a[] = {9, 8, 7, 6, 5, 4, 3, 2, 1, 0}, *p = a+5;

printf(“%d”, *--p);

}


C语言练习题2014-1(7).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:《计算机组成原理》第06章在线测试

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: