C语言试题2 答案

发布 2023-05-19 03:52:28 阅读 2304

题1:有如下程序:

#define double(x) x+x

i = 5 * double(5);

i的值是多少?并说明为什么?

30,i = 5 * 5 + 5;

题2:定义了unsigned int i;unsigned char *p; ,p指向内存一地址。现在要比较i所在4个字节和p指向的连续4个字节的内容是否一样。

请依题意写出**片断。

unsigned char *q=(unsigned char *)i;

if((q[0] =p[0]) q[1] =p[1]) q[2] =p[2]) q[3] =p[3]))

题3:有如下函数声明:

char str1[16] =evideo";

char str2 evideo";

int *p1=(int *)malloc(32);

char *p2=(char *)p1;

void *p3=(void *)p1;

则sizeof(str1) +sizeof(str2), sizeof(p1) +sizeof(p2) +sizeof(p3)分别为多少?

题4:用指针的方法实现函数来删除字符串的头部和尾部的空格字符。(ps:空格字符识别请用标准c库的isspace函数)

函数原型:char *trim(char *s);

char *trim(char *str)

char *p;

while (*str &&isspace(*str))

str++;

p = str + strlen(str) -1;

while (p > str &&isspace(*p))

return str;

题5:下面每种情况中*ptr和*(ptr+2)的值分别是什么?

a.int *ptr;

int torf[2][2] =

ptr = torf[0];

b.int *ptr;

int fort[2][2] =

ptr = fort[0];

题6:阅读以下程序并在vc6中执行:输入a,b,c3个整数,按从大到小输出。

#include <>

void main( )

void exchange(int *q1, int *q2, int *q3);

int a, b, c, *p1, *p2, *p3;

scanf("%d,%d,%d", a, &b, &c);

p1 = a;

p2 = b;

p3 = c;

exchange(p1, p2, p3);

printf("%d, %d, %d",a, b, c);

void exchange(int *q1, int *q2, int *q3)

void swap(int *pt1, int *pt2);

if(*q1 < q2)

swap(q1, q2);

if(*q1 < q3)

swap(q1, q3);

if(*q2 < q3)

swap(q2, q3);

void swap(int *pt1, int *pt2)

int temp;

temp = pt1;

*pt1 = pt2;

*pt2 = temp;

题7:有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位?

#include <>

#define nmax 50

main()

int i,k,m,n,num[nmax] =p;

printf("please input the total of numbers:")

scanf("%d",&n);

p=num;

for(i=0; ip + i ) i+1;

i=0;k=0;

m=0;while(m

i++;if(i==n) i=0;

while(*p==0) p++;

printf("%d is left",*p);

题8:继续扩展第一次作业题9中的文件的宏定义。

arr2_num(a)(返回二维数组的元素个数)、arr2_col_num(a)(返回二维数组的行数)、arr2_row_num(a)(返回二维数组的行数)arr2_pos(a)(返回二维数组元素相对首地址的偏移量)

#define arr2_num(a) (sizeof((a))/sizeof((a)[0][0]))

#define arr2_col_num(a) (sizeof((a)[0])/sizeof((a)[0][0]))

#define arr2_row_num(a) (sizeof((a))/sizeof((a)[0]))

#define arr2_pos(a, i, j) (i) *arr2_col_num((a)) j))

C语言复习2答案

复习考试模拟题。填空。1定义语句 int x float y 后,变量x 的最大取值为 32767 变量y 在内存占 4 个字节。2 在下面程序的每条语句后面用文字说明语句。include void main 3 将128用c语言的十六进制表示为 80h 4 将x定义为双精度浮点型变量 double...

C语言答案第2章

第2章。2.1略。2.2合法常量分别是 20 0.5 012 8e4 5.0x6a ok a 012 a b 2.3合法的变量名有 abc123 abc a b c abc int i,j错误,数据类型错误。float a,b 正确。int a,b float a,b 错误,变量重复定义。float...

C语言模拟试卷2 带答案

单选题 1 执行下面的程序段后,变量k中的值为。s 0 k k s 1 10 a.不定值 b.33 c.30 d.10答案 a 2 设有以下定义 define n 3 define y n n 1 n 则执行语句 z 2 n y 5 1 后,z的值为 2 3 4 5 1 a.出错。b.42c.48 ...