c语言程序设计试题答案_第1页
c语言程序设计试题答案_第2页
c语言程序设计试题答案_第3页
c语言程序设计试题答案_第4页
c语言程序设计试题答案_第5页
已阅读5页,还剩2页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、习题77.1选择题。下列对字符串的定义中,错误的就是:_A 。A) char str7 = FORTRAN;B) char str = FORTRAN;C) char *str = FORTRAN;D) char str = F,O,R,T,R,A,N,0;(2)以下程序段的输出结果就是:Dchar a = ABCDE;char *p = NULL;for (p=a; pva+5; p+)printf(%sn, p);A)ABCDEB) AC)ED)ABCDEBDBCDECCCDEDBDEEAE(3)下列程序就是对字符串的相关操作,正确的就是DoA)#include vstdio 、h mai

2、n()static char a5;a = abcde; printf(%sn, a);B)#include vstdio 、h main()static char a7= goodbye!; printf(%sn, a);C)#include vstdio 、h main()char a5 = abcde; printf(%sn, a);D)#include vstdio 、h main()static char a=abcde; printf(%sn, a);阅读下列函数,函数功能为A p = *p1;*p1 = *p2;*p2 = p;A)交换*p1与*p2的值B)正确,但无法改变*p1

3、与*p2的值C)交换*p1与*p2的地址D)可能造成系统故障设有语句:int array34;则在下面几种引用下标为i与j的数组元素的方法中不正确的引用方式就是:D。A) arrayijB) *(*(array + i) + j)C)*(arrayi + j)D) *(array + i*4 + j)7.2阅读下列程序,写出运行结果。#include vstdio 、hmain()static int x = 1,2,3;int s, i, *p = NULL;s = 1;p = x;for (i=0; imain()int a = 1,2,3,4,5;int *p = NULL;p = a;

4、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,#include vstdio、hchar b = program;char *a = PROGRAM;main()int i = 0;printf(%c%sn,*a, b + 1);while (putchar (*(a + i)i+;printf(i = %dn,i);wh

5、ile ( - i)putchar (*(b + i);printf(n%sn, & b3);答案:ProgramPROGRAM i = 7margorgram/* 源文件名为demo、c */main(int argc, char *argv)int i;for (i=0; ivoid Print(char *arr,int len);void main()char *pArray = Fred,Barrey,Wilma,Betty;int num = sizeof(pArray) / sizeof(char);printf(Total string numbers = %dn, num);

6、Print(pArray, num);void Print(char *arr, int len)int i;for (i=0; ilen; i+)printf(%sn, arri);答案:int num = sizeof(pArray) / sizeof(char);应改为:int num = sizeof(pArray) / sizeof(char*);或:int num = sizeof(pArray) / sizeof(pArray0);理由:pArray就是一个存放了 4个字符串指针的数组,其中每一个元素就是一个指针,而非一个字符。程序希望得到的运行结果如下:Total string

7、 numbers = 4FredBarreyWilmaBetty7.5编写一个交换变量值的函数,利用该函数交换数组a与数组b中的对应元素。提示:参考例7、2,用指针变量做函数参数实现两数交换。 答案:voidsa,intb,int n)inttemp5for(inti =0; ivn;i +)temp=ai;ai =bi;bi =temp57.6任意从键盘输入 10 个整数,用函数编程实现计算其中的最大值与最小值,并返回它们所在数组中的位置。提示 :参考例 7、 3,用指针变量做函数参数 ,得到最大值与最小值在数组中的位置。答案 :void MaxAndMin ( int * a, int n

8、, int * pMaxIndex , int * pMinIndex ) * pMaxIndex = * pMinIndex = 0;for ( int i =0; i n; i +)if ( a* pMaxIndex a i )* pMinIndex = i ;7.7不用 strcat 函数编程实现字符串连接函数 strcat 的功能 , 将字符串 t 连接到字符串 s 的尾部。 提示 :参考例 7、 5,用 i 与 j 分别作为字符数组 s 与字符数组 t 的下标 ,先将 i 与 j 同时初 始化为 0,然后移动 i 使其位于字符 s 的尾部即字符串结束标志处 ,再将字符数组 t 中的字

9、符依 次拷贝到字符数组 s 中。 答案 :void strcat (char *s, char *t )while (* s) s+;while (* s+ = * t +);7.8 编程从键盘输入一个字符串 ,将其字符顺序颠倒后重新存放 ,并输出这个字符串。 答案 :#include #include int main ()char s100=0;scanf ( %s , s);int start = 0;int end = strlen ( s)-1;for (; start end; start +, end -)int temp = s start ;s start = s end;s

10、 end = temp;printf ( %sn , s);7.9 *编程判断输入的一串字符就是否为“回文” 。所谓“回文”就就是指顺读与倒读都一样 的字符串 ,例如 level 、 ABCCBA 都就是回文。提示 : 由题意可知 ,回文就就是一个对称的字符串 ,利用这一特点可采用如下算法进行判 断:设置两个指针pStart与pEnd,让pStart指向字符串首部,让pEnd指向字符串尾部;(2) 利用循环从字符串两边对指针所指字符进行比较,当对应的两字符相等且两指针未超越对方时 ,使指针 pStart 向前移动一个字符位置即加1,使指针 pEnd 向后移动一个字符位置即减 1,一旦发现对应的

11、两字符不等或两指针以互相超越(不可能就是回文 ),则立即停止循环 ;(3) 根据退出循环时两指针的位置,判断字符串就是否为回文。 答案 :#include #include int main ()char s100=0;scanf ( %s , s);int start = 0;int end = strlen ( s)-1;int flag = 1;for (; start end; start +, end -)if ( s start != s end )flag = 0;break ;printf ( %sn ,flag ?YES : NO );7.10 *编写一个能对任意 mXn的矩

12、阵进行转置的函数Transpose。提示 :参考例 7、9,用指针变量做函数参数编程实现。 答案 :#include void Transpose (int * arrDest , int * arrSource , int m, int n)for ( int i =0; i m; i +)for ( int j =0; j n; j +)*( arrDest +m*j +i ) = *( arrSource +n*i +j ); int main ()int s34 =0,1,2,3,4,5,6,7,8,9,10,11,;int t 43;Transpose (&t 00,& s00,3,4);for ( int i =0; i 4; i +)for ( int j =0; j 3; j +)printf ( %4d , t i j );printf ( n );7.11 *用指针数组编程实现 : 任意从键盘输入一个数字表示的月份值n, 程序输出该月份的英文表示 , 若 n 不在 112 之间 , 则输出“ Illegal month ”。答案 :#include int main ()char * months =January , February , March , April , May , June ,July , August , Septembe

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论