一.选择题。
1、有以下程序main()
int x[8]=,s;s=x+3;
printf("%d",s[2]);
执行后输出结果是a)随机值。
b)0c)5
d)6d)*p只能用来说明p是一个指针变量2、阅读以下函数fun(char *s1,char *s2)
此函数的功能是。
a)将s2所指字符串赋给s1
b)比较s1和s2所指字符串的大小,若s1比s2的大,函数值为1,否则函数值为0
c)比较s1和s2所指字符串是否相等,若相等,函数值为1,否则函数值为0
d)比较s1和s2所指字符串的长度,若s1比s2的长,函数值为1,否则函数值为0
3、有以下程序main()
char str=xyz",*ps=str;while(*ps)ps++;
for(ps--;ps-str>=0;ps--)puts(ps);}
执行后的输出结果是a)yzxyz
b)zyzc)zyzxyz
4、在msdos(16位)系统下,设char *s="\ta\017bc";则指针变量s与指向的字符串所占的字节数分别是a)1与5
5、下面能正确进行字符串赋值操作的是。
d)xxyxyz
b)2与5c)1与6d)2与6
a)char s[5]=;b)char
s[5]=;
c)char *s;s="abcde";
6、下面程序段的运行结果是char *s="abcde";s+=2;printf("%d",s);a)cde
c)字符'c'的地址。
7、若有下面的程序段:char s=china";char *p; p=s;则下列叙述正确的是a)s和p完全相同。
b)数组s中的内容和指针变量p中的内容相等c)s数组长度和p所指向的字符串长度相等d)*p与s[0]相等。
8、若有说明语句char a=it is mine";char *p="it is mine";则以下不正确的叙述是。
d)char *s;scanf("%s",s);
b)字符'c'
d)无确定的输出结果。
a)a+1表示的是字符t的地址。
b)p指向另外的字符串时,字符串的长度不受限制c)p变量中存放的地址值可以改变d)a中只能存放10个字符。
二.填空题。
9、若有以下定义,则不移动指针p,且通过指针p引用值为98的数组元素的表达式是__p[5]__p+5)__int w[10]=,p=w;
在下列前提下,完成两道题。
若有如下图所示五个连续的int类型的存储单元并赋值如下图,a[0]的地址小于a[4]的地址。p和s是基类型为int的指针变量。请对以下问题进行填空。
a[0] a[1] a[2] a[3] a[4]2233445566
10、若p已指向存储单元a[1]。通过指针p,给s赋值,使s指向最后一个存储单元a[4]的语句是11、若指针s指向存储单元a[2],p指向存储单元a[0],表达式s-p的值是。
三.编程题(提交时,一题一个。c文件,文件名以章节编号+’_编程题号,如:04_
1.设计一函数stringcopy实现字符串str1拷贝到str2中,(即实现strcpy功能)要求用指针实现,不能用计数器。参考函数原型:
char * stringcopy(char *str2, char*str1);
2、用函数指针数组实现小型计算器的加减乘除运算。
3、把项目按公共模块,添加模块,链表模块等划分,编写makefile文件。
数组 指针作业
1 要声明一个有10个int型元素的数组,正确的语句是。a.int a 10 b.int a 2,5 c.int a d.int a 10 2 下面的数组初始化语句中,正确的是。a.char a string b.int a 5 c.int a string d.char a 3 已知 int i,...
答案 数组 函数 指针作业
数组 课外作业 一 输入一组数,输出这组数中的最大值和最小值。include void main float a 20 max,min int i,n printf 输入数据个数 不超过20 scanf d n printf 输入数字 for i 0 i scanf f a i max min a ...
11 05与11 07作业
案例分析。1.acei和arb均为一线抗高血压药物,作用于肾素 血管紧张素 醛固酮系统。通过对卡托普利的研发历程进行分析,回答下列问题 acei和arb均作用于肾素 血管紧张素 醛固酮系统,说出这两类药物作用机制的区别。为什么多数acei结构均为脯氨酸的类似物,而且大多数为前药上市?卡托普利的巯基能...