C程序设计第8章选择题作业

2026/4/29 0:47:09

1. 20801、变量的指针,其含义是指变量的。B

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

2. 20802、有如下语句int a=10,b=20;*p1=&a,*p2=&b; 如果让两个指针变量均指向b,正确的赋值方式是。B

A)*p1=*p2; B)p1=p2; C)p1=*p2; D)*p1=*p2;

3. 20803、已有定义int k=2; int *p1,*p2;且p1,p2均指向变量k,下面不能正确执行的赋值语句是 。B

A)k=*p1+*p2; B)p2=k; C)p1=p2; D)k=*p1*(*p2);

4. 20804、以下程序中调用scanf函数给变量a输入数值的方法是错误的,其错误的原因是 。B

void main() {int *p,*q,a,b; p=&a;

printf(\scanf(\? }

A)*p表示的是指针变量p的地址 B)*p表示的是变量a的值,而不是变量a的地址 C)*p表示的是指针变量p的值 D)*p只能用来说明p是一个指针变量

5. 20805、若已定义int a;下面对(1)、(2)两个语句的正确解释是。D (1)int *p=&a; (2)*p=a;

A)语句(1)和(2)中的*p含义相同,都表示给指针变量p赋值

B)(1)和(2)语句的执行结果,都是把变量a的地址赋给指针变量p C)(1)在对p进行说明的同时进行初始化,使p指向a (2)将变量a的值赋给指针变量p

D)(1)在对p进行说明的同时进行初始化,使p指向a (2)将变量a的值赋给*p

6. 20806、若有语句int a=4,*p=&a;下面均代表地址的一组选项是 。D A)a,p,*&a B)*&a,&a,*p C)*&p,*p,&a D)&a,&*p,p

7. 20807、已有变量定义和函数调用语句int a=25;print_value(&a);下面函数输出的正确结果是。D

void print_value(int *x) {printf(\

A)23 B)24 C)25 D)26

8. 20808、已知“int b[]={1,2,3,4},y,*p=b;y=*p++;”这两个语句执行后,变量y 的值为。A

A) 1 B) 2 C)3 D)4

9. 20809、以下程序的运行结果是。B void sub (int x,int y,int *z) {*z=y-x;} void main() {int a,b,c; sub(10,5,&a); sub(7,a,&b); sub(a,b,&c);

printf(\}

A) 5, 2, 3 B) -5, -12, -7 C) -5, -12, -17 D) 5, -2, -7

10. 20810、下面能正确进行字符串赋值操作的是。C

A)char s[5]={\ B)char s[5]={'A','B','C','D','E'}; C)char *s; s=\ D)char *s; scanf(\

11. 20811、设p1和p2是指向同一个字符串的指针变量,c为字符变量,则以下不能正确执行的赋值语句是。B

A)c=*p1+*p2; B)p2=c; C)p1=p2; D)c=*p1*(*p2);

12. 20812、下面程序段的运行结果是 。C char *format=\int a=1,b=10; a+=b;

printf(format,\

A)for,\ B)format,\

C)a+=b,a=11,b=10 D)以上结果都不对

13. 20813、下面程序的运行结果是 。B #include \#include \void main()

{char *s1=\char *s2=\s1+=2; s2+=2;

printf(\}

A)正数 B)负数 C)零 D)不确定的值

14. 20814、若有定义:int (*p)[4];则有关标识符p的说法, 。C A)p是一个指向整型变量的指针 B)p是一个指针数组名

C)p是一个指针,它指向一个含有四个整型元素的一维数组

D)p定义不合法

15. 20815、语句int (*ptr)();的含义是。C A)ptr是指向一维数组的指针变量 B)ptr是指向int型数据的指针变量

C)ptr是指向函数的指针,该函数返回一个int型数据

D)ptr是一个函数名,该函数的返回值是指向int型数据的指针

16. 20816、下面程序的功能是将八进制正整数字符串转换为十进制整数。请选择填空。D #include void main() {char *p,s[10]; int n; p=s; gets(p); n=*p-'0';

while( !='\\0') n=n*8+*p-'0'; printf(\}

A)*p B)*p++ C)p D) *(++p)

17. 20817、下面程序的功能是在字符串str中找出最大的字符并放在第一个位置上,并将该字符前的原字符往后顺序移动,如chyab变成ychab。请选择填空。C #include void main()

{char str[80],*p, max,*q; p=str;gets(p);max=*(p++); while(*p!='\\0')

{ if(max<*p) {max=*p;q=p;} p++; } p=q;

while(p>str ) {*p=*(p-1); ;} *p=max; puts(p); }

A)p++ B)str-- C)p-- D)i--

18. 20818、若有以下调用语句,则不正确的fun函数的首部是。D void main() { …

int a[50],n; ?

fun(n,&a[9];);

? }

A)void fun(int m,int x[]) B)void fun(int s,int h[41]) C)void fun(int p,int *s) D)void fun(int n,int a)

19. 20819、设int a[3][4]={{1,3,5,7},{2,4,6,8}};则*(*a+1)的值为 。B A)1 B)3 C)2 D)4

20. 20820、下面判断正确的是 。C

A)char *a=\等价于char *a;*a=\

B)char str[10]={\等价于char str[10];str[]=\C)char *s=\等价于char *s; s=\

D)char c[6]=\等价于char c[6]=d[6]=\


C程序设计第8章选择题作业.doc 将本文的Word文档下载到电脑
搜索更多关于: C程序设计第8章选择题作业 的文档
相关推荐
相关阅读
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 10

支付方式:

开通VIP包月会员 特价:29元/月

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