77范文网 - 专业文章范例文档资料分享平台

2012C语言程序设计试题(8)

来源:网络收集 时间:2019-03-28 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

2.执行以下程序后,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 B.1 C.0 D.4

A.5 B.6 C.7 D.10

3.下面程序应能对两个整型变量的值进行交换以下正确的说法是( ) main()

{ int a=10,b=20;

printf(“(1)a=%d,b=%d\\n”,a,b);

swap(&a,&b);

printf(“(2)a=%d,b=%d\\n”a,b);

}

swap(int p,int q)

{ int t; t=p; p=q; q=t; } A.程序完全正确

B.程序有错,只要将语句swap(&a,&b);中的参数改成a,b即可

C.程序有错,只要将swap()函数中的形参p和q 以及t均定义为指针(执行语句不变)即可 D.以上说法都不对

4.有四组对指针变量进行操作的语句,以下判断正确的选项是( ) (1) int p,q; q=p; int a,*p,*q; p=q=&a; (2) int a,*p,*q; q=&a; p=*q; int a=20,*p; p=a;

(3) int a=b=0,*p; p=&a; b=*p; int a=20,*p,*q=&a; p=q; (4) int a=20,*p,*q=&a; p=q; int p,*q; p=q; A.正确(1) 不正确(2)(3)(4) B.正确(1)(4) 不正确(2)(3) C.正确(3) 不正确(1)(2)(4) D.以上结论都不正确

5.以下程序中调用scanf 函数给变量a输入值的方法是错误的,其错误原因是( ) main() { int*p, a ;

p=&a;

printf(“input a:”); scanf(“%d”,*p); ??

}

A.*p表示的是指针变量p的地址

B.*p表示的是变量a的值,而不是变量a的地址

C.*p表示的是指针变量p的值

D.*p只能用来说明p是一个指针变量

6.已有定义int k=2; int *ptr1=&k, *ptr2=&k;下面不能正确执行赋值语句的是( )

A. k=*ptr1+*ptr2; B.ptr2=k; C.ptr1=ptr2; D. k=*ptr1*(*ptr2); 7.变量的指针,其含义是指该变量的( )

A.值 B.地址 C.名 D.一个标志

8.若有语句int *point , a=4和point=&a;下面均代表地址的一组选项是( ) A. a, point, *&a B.&*a, &a, *point C. &point, *point, &a D.&a, &*point, point 9.若有说明: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;

10.若有说明:int *p1,*p2,m=5,n;以下不正确的赋值语句的选项是( )

A. p1=&m; p2=&p1; B.p1=&m; p2=&n; *p1=*p2; C. p1=&m; p2=p1; D.p1=&m; p2=p1;

11已有变量定义和函数调用语句: int a=25; print_value(&a);下面函数的正确输出结果是( ) void print_value(int *x) {printf(“%d\\n”,++*x);}

A. 23 B. 24 C. 25 D. 26 12.下面判断正确的是( )

A. char *a=”china”; 等价于 char *a; *a=”china”; B. char str[10]={“china”}; 等价于 char str[10]; C. char *s=”china”; 等价于 char str[10]

D. char c[4]=”abc”, d[4]=”abc” 等价于 char c[4]=b[4]=”abc”;

13.设char*s=”\\ta\\017bc”;则指针变量s指向的字符串所占的字节数是 ( ) A.9 B.5 C.6 D.7 14.下面能正确进行字符串赋值的操作的是( )

A. char s[5]={“ABCDE”}; B. char s[5]={?A?,?B?,?C?,?D?,?E?,}; C. char*s; s=”ABCDE”; D.chars;scanf(“%s”,s); 15.下面程序段的运行结果是( )

char *s=”abcde”; s+=2; printf(“%d”,s);

A.cde B.字符?c? C.字符?c?的地址 D.无确定结果 16.设有以下程序段:char s[]=”china”; char*p; p=s; 则下列叙述正确的是( ) A.s和p完全相同

B.数组s中的内容和指针变量p中的内容相等 C.s数组长度和p所指向的字符串长度相等 D.*p与s[0]相等 17.以下正确的程序段是( )

A.char str[20]; scanf(“%s”,&str); B.char *p; scanf(“%s”,p);

C.char str[20];Scanf(“%s”,&str[2]); D.char str[20], *p=str; scanf(“%s”,p[2]); 18.下面程序段的运行结果是( ) char str[]=”ABC”, *p=str; printf(“%d\\n”,*(p+3));

A. 67 B. 0 C.字符?C?的地址 D.字符?C? 19.下面程序段运行结果是( ) char a[]=”language”,*p; p=a;

while(*p!=?u?) { pirntf(“%c”,*p-32); p++; }

A. LANGUAGE B. language C. LANG D. language 20.下面说明不正确的是( )

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”; 21. 若有说明语句: char a[]=”It is mine”; char *p=”It is mine”; 则以下不正确的叙述是( ) A.a+1表示的是字符t的地址

B.p指向另外的字符串时,字符串的长度不受限制 C.p变量中存放的地址值可以改变 D.a中只能存放10个字符

22.若已定义char s[10];则在下面表达式中不 表示s[1]的地址是( ) A.s+1 B.s++ C.&s[0]+1 D. &s[1] 23.下面程序段的运行结果是( )

char s[6]; s=”abcd” printf(“\\”%s\\”\\n”,s);

A.”abcd” B.”abcd” C。\\”abcd\\” D编译出错

24.当运行以下程序时,从键盘输入Happy! ,则下面的程序运行结果是( ) #include #include main()

{ char str [10], *p=str;

gest(p); printf(“%d\\n”,stre(p)); }

stre(char str[ ] ) { int num=0;

while(*(str+num)!=?0?) num++; return(num);

}

A.7 B.6 C.5 D.10 25.下面程序的运行结果是( ) #include 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(\

}

A.abc B.34 C.a34 D.a34bc

26.下面程序运行结果是( )

#include #include main()

{ char*s1=”AbDeG”; char *s2=”ABdEg”;

s1+=2; s2+=2;

printf(“%d\\n”,strcmp(sl,s2));

}

A.正数 B.负数 C.零 D.不确定的值 27.下面和序的运行结果是( ) #include #incude

main()

{ char* p1,*p2,str[50]=”abc”;

p1=”abc”; p2=”abc”;

strcpy(str+1,strcat(p1,p2)); printf(“%s\\n”,str);

}

A.abcabcabc B.bcabcabc C.aabcabc D.cabcabc 28.若有以下定义int a[5],*p=a; 则对a数组元素的正确引用是

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

29.若有定义:int a[2][3];则对a数组的第I行,第j列元素值的正确引用是( ) A.*(*a+I)+j) B.(a+I)[j] C*(a+I+j) D.*(a+I)+j

30.若有以下定义和语句int a[2][3], (*P)[3]; p=a;则对a数组的地址的正确引用为( ) A.*(p+2) B.p[2] C.p[1]+1 D.(p+1)+2

31.若有以下定义和语句int a[2][3],(*p)[3]; p=a;则对a数组元素的正确引用为( ) A.(p+1)[0] B.*(*(p+2)+1) C.*(p[1]+1) D.p[1]+2 32.若有定义:int a[5];则a数组中首元素地址可以表示为( ) A.&a B.a+1 C.a D.&a[1] 33.若有定义: int(*p)[4]; 则标识符p是( ) A.是一个指向整形变量的指针 B.是一个指针数组名

C.是一个指针,它指向一个含有四个整形元素的一维数组 D.定义不合法

34.若有以下定义和赋值语句,则以s数组的第I行第j列元素地址的合法引用为( ) int s[2][3]={0}, (*p)[3]; p=s;

A.*(*p+I)+j) B.*(p[I]+j) C.(p+I)+j D.(*(p+I))[j] 35.以下与int *q[5];等价的定义语句是( )

A.int q[5]; B.int *q; C.int *(q[5]); D.int (*q)[5]; 36.设有以下程序段:

char str[4][10]={“frist”,”second”,”third”,”forurth”},*strp[4]; int n; for(n=0;n<4;n++) strp[n]=str[n];

若k为int型变量且0<=k<4,则对字符串的不正确引用是( ) A. strp B. str[k] C.strp[k] D.*strp

37.若有以下定义int a[10],*p=a; 则*(p+5)表示( )

A.元素a[5]的地址 B.元素a[5]的值 C.元素a[6]的地址 D.元素a[6]的值 38.以下选项中,对指针变量p的不正确操作是( )

A.int a[5],*p; p=&a; B.int a[5],*p; p=a;

C.int a[5]; int *p=a; D.int a[5]; int*p1,*p2=a; *p1=*p2;

39.若有以下定义int a[5],*p=a; 且0<=I<5,则对a数组元素的非法引用是( ) A.a[1] B.*(a+1) C.*(p+1) D.*(&a+I)

40.若有以下定义int x[10]={0,1,2,3,4,5,6,7,8,9},*p1; 则数值不为3的表达式是( ) A.x[3] B.p1=x+3,*p1++ C.p1=x+2,*(p1++) D.p1=x+2,*++p1 41.阅读以下程序:

main()

{ int a[10]={2,4,6,8,10,12,14,16,18,20},*p;

p=a; printf(“%x\\n”,p); printf(“%x\\n”,p+9);

}

若第一个printf语句输出的是ffca,则第二个printf语句输出的是( ) A.ffdd B.ffdc C.ffde D.ffcd

42.设有以下定义: char *cc[2]={“1234”,”5678”}; 则正确的叙述是( ) A.cc数组的两个元素中各自存放了字符串”1234”和”5678”的首地址

B.cc数组的两个元素分别存放的是含有4个字符的一维字符数组的首地址 C.cc是指针变量,它指向含有两个数组元素的字符型一维数组 D.cc数组元素的值分别是”1234”和”5678”

43.若有以下定义int x[4][3]={1,2,3,4,5,6,7,8,9,10,11,12}; int(*p)[3]=x; 则能够正确表示数组元素x[1][2]的表达式是( )

A *((*p+1)[2]) B (*p+1)+2 C *(*p+5) D *(*p+1)+2) 44.下面程序的运行结果是( ) main()

{ int x[5]={2,4,6,8,10},*p,**pp;

p=x; pp=&p;

printf(“%d”,*(p+1)); printf(“=\\n”,**pp); }

A 4 4 B 2 4 C 2 2 D, 4 6

45.若有说明:char *language[]={“fortran”,”basic”,”pascal”,”java”,”c”}; 则表达式language[1]>*language[3]比较的是( )

A.字符f和字符p B.字符串basic和字符串java

C.字符b和字符j D.字符串fortran和字符串pascal 46.若有说明:char *language[]={“fortran”,”basic”,”pascal”,”java”,”c”}; 则language[2]的值是( )

A.一个字符 B.一个地址 C.一个字符串 D.一个不定直

47. 若有说明:char *language[]={“fortran”,”basic”,”pascal”,”java”,”c”}; 则以下不正确的是( )

A.language+2表示字符串”pascal”的首地址

B.language[2]的值是字母p

C.language是一个字符行指针数组,它包含5个元素每个元素都是一个指向字符串变量的指针

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库2012C语言程序设计试题(8)在线全文阅读。

2012C语言程序设计试题(8).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/550298.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: