C语言大实用教程 C语言 习题 大学实用教程 哈尔滨工业大学计犷机科学与技术学院 苏小红 sXh h(hit. edu. cn
习题7 哈尔滨工业大学计算机科学与技术学院 苏小红 sxh@hit.edu.cn
习是题7l 01下列对字符串的定义中,错误的是: wr char str[7]="FORTRAN"; B) char str[] ="forTRAn"i c) char *str ="FORTRAN D) char str[] "F',"o',"R',"T',"R',"及',"N","0′} 02以下程序段的输出结果是: char a[l "ABCDE" char *p NULLi for (p=a: p<a+5: p++) ABCDE B)A printf("号s\n",p); ⊥BCDE B BCDE C CDE B D 2021/224 C语言大学实用教程 E E
2021/2/24 C语言大学实用教程课件制作人苏小红 2 习题7.1 1下列对字符串的定义中,错误的是: 。 – A) char str[7] = "FORTRAN"; – B) char str[] = "FORTRAN"; – C) char *str = "FORTRAN"; – D) char str[] = {'F','O','R','T','R','A','N',’0’}; 2以下程序段的输出结果是:___________ 。 – char a[] = "ABCDE" ; – char *p = NULL; – for (p=a; p<a+5; p++) – { – printf("%s\n", p); – } A)ABCDE B)A C)E D) ABCDE B D BCDE C C CDE D B D E A E
习题7l 04函数功能为 void Exchange (int *pl, int *p2) int p p=*P1; p1=*p2; 2 0√交换*1和*p2的值 B)正确,但无法改变*1和*p2的值 0c)交换*p1和*p2的地址 0D)可能造成系统故障 2021/224 C语言大学实用教程课件制作人苏小红 3
2021/2/24 C语言大学实用教程课件制作人苏小红 3 习题7.1 4函数功能为________ – void Exchange(int *p1, int *p2) – { – int p; – p = *p1; – *p1 = *p2; – *p2 = p; – } A)交换*p1和*p2的值 B)正确,但无法改变*p1和*p2的值 C)交换*p1和*p2的地址 D)可能造成系统故障
习题7 05设有语句: int array[3][4];则在下面 几种引用下标为和j的数组元素的方法中,不 正确的引用方式是: A)array [i][j] B)*(*( array+立)+j) c)*(array[i] j) Wr*(array i*4+j) 2021/224 C语言大学实用教程课件制作人苏小红
2021/2/24 C语言大学实用教程课件制作人苏小红 4 习题7.1 5设有语句:int array[3][4]; 则在下面 几种引用下标为i和j的数组元素的方法中,不 正确的引用方式是:_______ – A)array[i][j] – B)*(*(array + i) + j) – C)*(array[i] + j) – D)*(array + i*4 + j)
习题72 0阅读下列程序,写出运行结果。 口# include o main o static int x[l =(1,2,3i int s, i, *p NULL; 1; for(i=0;i<3;i++) 6 s*=*(P+i); printf("号dln",s); 2021/224 C语言大学实用教程课件制作人苏小红
2021/2/24 C语言大学实用教程课件制作人苏小红 5 习题7.2 阅读下列程序,写出运行结果。 #include main() { static int x[] = {1,2,3}; int s, i, *p = NULL; s = 1; p = x; for (i=0; i<3; i++) { s* = *(p + i); } printf("%d\n",s); } 6
习题72 口#inc1ude o main inta[]={1,2,3,4,5}; int *p NULL; p = ai printf(d,,*p)i printf("%d,",*(++p)) printf ("d,,*++p) printf("%d,",*(p--)); printf("d, ",*p++)i printf("d,,*p)i 1,2,3,3,23,4,4 printf("%d,",++(*p)); printf("d,,*p)i 2021/224 C语言大学实用教程课件制作人苏小红 6
2021/2/24 C语言大学实用教程课件制作人苏小红 6 习题7.2 #include main() { int a[] = {1,2,3,4,5}; int *p = NULL; p = a; printf("%d, ",*p); printf("%d, ",*(++p)); printf("%d, ",*++p); printf("%d, ",*(p--)); printf("%d, ",*p++); printf("%d, ",*p); printf("%d, ",++(*p)); printf("%d, ",*p); } 1,2,3,3,2,3,4,4
习题72 0 #include o char b[] program"i char★a UIPROGRAM; o main() int i =0: printf("号c号sn",*a,b+1); while (putchar (*(a + 1))) 1++ Program printf("i=各d\n",i); while PROGRAM putchar (*(b+ i))i Margo printf("\ns\n", &b[3]); gram 2021/22 C语言大学实用教程课件制作人苏小红 7
2021/2/24 C语言大学实用教程课件制作人苏小红 7 习题7.2 #include char b[] = "program"; char *a = "PROGRAM"; main() { int i = 0; printf("%c%s\n",*a, b + 1); while (putchar (*(a + i))) { i++; } printf("i = %d\n",i); while ( -- i) { putchar (*(b + i)); } printf("\n%s\n", &b[3]); } Program PROGRAM Margor gram
习题72 0/*源文件名为demo.c*/ o main(int argc, char *argv []) int ii for (1=0; i<argc: i++) printf("8s\n", argv[i])i 假设该文件dmo:c及其可执行程序demo.exe位于EThM demo. e 盘的Tc目录下,则当命含行参数为an; exe This|ts s a prograns 2021/224 C语言大学实用教程课件制作人苏小红 program
2021/2/24 C语言大学实用教程课件制作人苏小红 8 习题7.2 /* 源文件名为demo.c */ main(int argc, char *argv[]) { int i; for (i=0; i<argc; i++) { printf("%s\n", argv[i]); } } 假设该文件demo.c及其可执行程序demo.exe位于E 盘的TC目录下,则当命令行参数为demo.exe This is a program,则运行结果应为什么? demo.exe This is a program
习题3 0下面的函数用于计算两个整数之和,并通过指 针形参z得到x和y相加后的结果。 void Add(int xint y,_ int *_z) ★z xti 2021/224 C语言大学实用教程课件制作人苏小红
2021/2/24 C语言大学实用教程课件制作人苏小红 9 习题6.3 下面的函数用于计算两个整数之和,并通过指 针形参z得到x和y相加后的结果。 void Add(int x,int y, z) { = x+y; } int * *z
下面函数实现stx1en函数的功能,即计算指 针p所指向的字符串中的实际字符个数 unsigned int My Strlen(char *p) int len en 0 fox(;*p!=_0′;p++) len 十 e七un en 习是73 2021/224 C语言大学实用教程课件制作人苏小红
2021/2/24 C语言大学实用教程课件制作人苏小红 10 习题7.3 下面函数实现strlen函数的功能,即计算指 针p所指向的字符串中的实际字符个数。 unsigned int MyStrlen(char *p) { int len; len = 0; for (; *p != ; p++) { len ; } return ; } ’\0’ ++ len