c语言程序设计试题答案.docx

上传人:b****5 文档编号:4441782 上传时间:2022-12-01 格式:DOCX 页数:5 大小:16.66KB
下载 相关 举报
c语言程序设计试题答案.docx_第1页
第1页 / 共5页
c语言程序设计试题答案.docx_第2页
第2页 / 共5页
c语言程序设计试题答案.docx_第3页
第3页 / 共5页
c语言程序设计试题答案.docx_第4页
第4页 / 共5页
c语言程序设计试题答案.docx_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

c语言程序设计试题答案.docx

《c语言程序设计试题答案.docx》由会员分享,可在线阅读,更多相关《c语言程序设计试题答案.docx(5页珍藏版)》请在冰豆网上搜索。

c语言程序设计试题答案.docx

c语言程序设计试题答案

c语言程序设计试题答案

  习题7

  选择题。

  下列对字符串的定义中,错误的是:

A  。

  A)charstr[7]=\B)charstr=\C)char*str=\

  D)charstr={'F','O','R','T','R','A','N',0};

  以下程序段的输出结果是:

____D_________

  chara=\char*p=NULL;

  for(p=a;p

  A)ABCDE  B)A  B  C  D  E  C)E  D  C  B  A  D)ABCDEBCDECDEDEE

  下列程序是对字符串的相关操作,正确的是____D____。

  A)

  #includemain(){staticchara[5];

  a=\

  printf(\}

  B)

  #includemain(){staticchara[7]=\  printf(\}

  C)

  #includemain(){chara[5]=\  printf(\}

  D)

  #includemain(){staticchara=\  printf(\

  1

  }

  阅读下列函数,函数功能为___A_____。

  voidExchange(int*p1,int*p2){intp;p=*p1;*p1=*p2;*p2=p;}

  A)交换*p1和*p2的值B)正确,但无法改变*p1和*p2的值C)交换*p1和*p2的地址  D)可能造成系统故障

  设有语句:

intarray[3][4];则在下面几种引用下标为i和j的数组元素的方法中,不正确的引用方式是:

___D_____。

  A)array[i][j]  B)*(*(array+i)+j)C)*(array[i]+j)  D)*(array+i*4+j)

  阅读下列程序,写出运行结果。

  #includemain(){staticintx={1,2,3};int  s,i,*p=NULL;  s=1;p=x;for(i=0;imain(){inta={1,2,3,4,5};int*p=NULL;p=a;printf(\printf(\printf(\printf(\printf(\printf(\printf(\printf(\}

  答案:

1,2,3,3,2,3,4,4,

  #includecharb=\char*a=\main(){inti=0;

  2

  printf(\while(putchar(*(a+i))){  i++;}printf(\while(--i){  putchar(*(b+i));}printf(\}答案:

Program

  PROGRAMi=7margorgram

  /*源文件名为*/

  main(intargc,char*argv){inti;  for(i=0;i

  假设该文件及其可执行程序位于E盘的TC目录下,则当命令行参数为Thisisaprogram,则运行结果应为什么?

  答案:

Thisisa

  program

  阅读程序,按要求,在空白处填写适当的表达式或语句,使程序完整,并符合题目要求。

下面函数实现strlen函数的功能,即计算指针p所指向的字符串中的实际字符个数。

  unsignedintMyStrlen(char*p)

  {intlen;len=0;for(;*p!

=‘\\0’  ;p++){len++  ;}returnlen  ;}

  下面函数也是实现strlen函数功能的,但计算字符串s中的实际字符个数的方法与上一道题有所不同。

  unsignedintMyStrlen(chars){char*p=s;while(*p!

=  ‘\\0’  ){

  3

  p++;}return  p-s  ;}

  [提示:

移动指针p使其指向字符串结束标志,此时指针p与字符串首地址之间的差值即为字符串中的实际字符个数。

]

  下面函数实现strcmp函数的功能,即比较两个字符串的大小,将两个字符串中第一个出现的不相同字符的ASII码值之差作为比较的结果返回,返回值大于0表示第一个字符串大于第二个字符串,返回值小于0表示,表示第一个字符串小于第二个字符串,当两个字符串完全一样时,返回值为0。

  intMyStrcmp(char*p1,char*p2){for(;*p1==*p2;p1++,p2++){if(*p1=='\\0')return  0  ;}return  *p1-*p2  ;}

  在下面使用指针数组的程序中,存在一个错误,试分析这个程序,并上机运行,观察运行结果,找到这个错误,并分析错误的原因。

  #include

  voidPrint(char*arr,intlen);  

  voidmain{

  char*pArray={\  int  num=sizeof(pArray)/sizeof(char);  

  printf(\  Print(pArray,num);}

  voidPrint(char*arr,intlen){

  inti;  

  for(i=0;ia[i]){  *pMinIndex=i;}}}

  不用strcat函数编程实现字符串连接函数strcat的功能,将字符串t连接到字符串s的尾部。

  [提示:

参考例,用i和j分别作为字符数组s和字符数组t的下标,先将i和j同时初始化为0,然后移动i使其位于字符s的尾部即字符串结束标志处,再将字符数组t中的字符依次拷贝到字符数组s中。

]答案:

  voidstrcat(char*s,char*t){

  while(*s)s++;

  while(*s++=*t++);}

  编程从键盘输入一个字符串,将其字符顺序颠倒后重新存放,并输出这个字符串。

  答案:

  5

  #include#include

  intmain{

  chars[100]={0};scanf(\,s);intstart=0;

  intend=strlen(s)-1;

  for(;start#include

  intmain{

  chars[100]={0};scanf(\,s);intstart=0;

  intend=strlen(s)-1;intflag=1;

  for(;start

  voidTranspose(int*arrDest,int*arrSource,intm,intn){

  for(inti=0;i

  intmain{

  char*months={

  \,\,\,\,\,\,

  \,\,\,\,\,\,};

  intm;

  scanf(\,&m);if(m12){

  printf(\);}

  else{

  printf(\,months[m-1]);}}

  *用指针数组编程改写例中的两个函数DayofYear和MonthDay。

答案:

于函数原型和用途都不知,故此题没有答案。

  8

  习题7

  选择题。

  下列对字符串的定义中,错误的是:

A  。

  A)charstr[7]=\B)charstr=\C)char*str=\

  D)charstr={'F','O','R','T','R','A','N',0};

  以下程序段的输出结果是:

____D_________

  chara=\char*p=NULL;

  for(p=a;p

  A)ABCDE  B)A  B  C  D  E  C)E  D  C  B  A  D)ABCDEBCDECDEDEE

  下列程序是对字符串的相关操作,正确的是____D____。

  A)

  #includemain(){staticchara[5];

  a=\

  printf(\}

  B)

  #includemain(){staticchara[7]=\  printf(\}

  C)

  #includemain(){chara[5]=\  printf(\}

  D)

  #includemain(){staticchara=\  printf(\

  1

  }

  阅读下列函数,函数功能为___A_____。

  voidExchange(int*p1,int*p2){intp;p=*p1;*p1=*p2;*p2=p;}

  A)交换*p1和*p2的值B)正确,但无法改变*p1和*p2的值C)交换*p1和*p2的地址  D)可能造成系统故障

  设有语句:

intarray[3][4];则在下面几种引用下标为i和j的数组元素的方法中,不正确的引用方式是:

___D_____。

  A)array[i][j]  B)*(*(array+i)+j)C)*(array[i]+j)  D)*(array+i*4+j)

  阅读下列程序,写出运行结果。

  #includemain(){staticintx={1,2,3};int  s,i,*p=NULL;  s=1;p=x;for(i=0;imain(){inta={1,2,3,4,5};int*p=NULL;p=a;printf(\printf(\printf(\printf(\printf(\printf(\printf(\printf(\}

  答案:

1,2,3,3,2,3,4,4,

  #includecharb=\char*a=\main(){inti=0;

  2

  printf(\while(putchar(*(a+i))){  i++;}printf(\while(--i){  putchar(*(b+i));}printf(\}答案:

Program

  PROGRAMi=7margorgram

  /*源文件名为*/

  main(intargc,char*argv){inti;  for(i=0;i

  假设该文件及其可执行程序位于E盘的TC目录下,则当命令行参数为Thisisaprogram,则运行结果应为什么?

  答案:

Thisisa

  program

  阅读程序,按要求,在空白处填写适当的表达式或语句,使程序完整,并符合题目要求。

下面函数实现strlen函数的功能,即计算指针p所指向的字符串中的实际字符个数。

  unsignedintMyStrlen(char*p)

  {intlen;len=0;for(;*p!

=‘\\0’  ;p++){len++  ;}returnlen  ;}

  下面函数也是实现strlen函数功能的,但计算字符串s中的实际字符个数的方法与上一道题有所不同。

  unsignedintMyStrlen(chars){char*p=s;while(*p!

=  ‘\\0’  ){

  3

  p++;}return  p-s  ;}

  [提示:

移动指针p使其指向字符串结束标志,此时指针p与字符串首地址之间的差值即为字符串中的实际字符个数。

]

  下面函数实现strcmp函数的功能,即比较两个字符串的大小,将两个字符串中第一个出现的不相同字符的ASII码值之差作为比较的结果返回,返回值大于0表示第一个字符串大于第二个字符串,返回值小于0表示,表示第一个字符串小于第二个字符串,当两个字符串完全一样时,返回值为0。

  intMyStrcmp(char*p1,char*p2){for(;*p1==*p2;p1++,p2++){if(*p1=='\\0')return  0  ;}return  *p1-*p2  ;}

  在下面使用指针数组的程序中,存在一个错误,试分析这个程序,并上机运行,观察运行结果,找到这个错误,并分析错误的原因。

  #include

  voidPrint(char*arr,intlen);  

  voidmain{

  char*pArray={\  int  num=sizeof(pArray)/sizeof(char);  

  printf(\  Print(pArray,num);}

  voidPrint(char*arr,intlen){

  inti;  

  for(i=0;ia[i]){  *pMinIndex=i;}}}

  不用strcat函数编程实现字符串连接函数strcat的功能,将字符串t连接到字符串s的尾部。

  [提示:

参考例,用i和j分别作为字符数组s和字符数组t的下标,先将i和j同时初始化为0,然后移动i使其位于字符s的尾部即字符串结束标志处,再将字符数组t中的字符依次拷贝到字符数组s中。

]答案:

  voidstrcat(char*s,char*t){

  while(*s)s++;

  while(*s++=*t++);}

  编程从键盘输入一个字符串,将其字符顺序颠倒后重新存放,并输出这个字符串。

  答案:

  5

  

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 高中教育 > 高中教育

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1