本答案对应课程为:点我自动跳转查看
本课程起止时间为:2015-03-10到2015-06-30
本篇答案更新状态:已完结

第9周——呼风唤雨的指针 第9周测验

1、 问题:以下程序的功能是分别测量字符数组及数组中存放的字符串的长度,按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求。#include <stdio.h>

include <string.h>

main( )

    char a[]="abcdefg",b[10]="abcdefg";
    ____;  /测量字符数组a,b的长度,并输出/
    
____;  /测量字符数组a,b中存放的字符串的长度,并输出/
    return 0;
}
选项:
A:第6行: printf("%d %d",sizeof(a) ,sizeof(b))第7行: printf("%d %d",strlen(a) ,strlen(b))
B:第6行: printf("%d %d",strlen(a) ,strlen(b))第7行: printf("%d %d",sizeof(a) ,sizeof(b))
C:第6行: printf("%d %d",sizeof(a) ,sizeof(b))第7行: printf("%d %d",strlen(a) ,strlen(b))
D:第6行: printf("%d %d",sizeof(&a) ,sizeof(&b))第7行: printf("%d %d",strlen(&a) ,strlen(&b))
答案: 【第6行: printf("%d %d",sizeof(a) ,sizeof(b))第7行: printf("%d %d",strlen(a) ,strlen(b))

2、 问题:下面程序的功能是输入某年某月某日,计算并输出它是这一年的第几天。程序的运行结果如下:Please enter year, month, day:2014,12,29↙yearDay = 363按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求。#include    <stdio.h>
int  DayofYear(int year, int month, int day);
int dayTab[2][13] = {{0,31,28,31,30,31,30,31,31,30,31,30,31},{0,31,29,31,30,31,30,31,31,30,31,30,31}};
int main()
{
    int year, month, day, yearDay;
    printf("Please enter year, month, day:");
    scanf("%d,%d,%d", &year, &month, &day);
    yearDay = DayofYear(year, month, day);
    printf("yearDay = %d", yearDay);
    return 0;
}

/ 函数功能:对给定的某年某月某日,计算并返回它是这一年的第几天 /
int  DayofYear(int year, int month, int day)
{
    int  i, leap;
    leap = ___;  / 若year为闰年,即leap值为1,则用第1行元素dayTab[1][i]计算;
                                       否则leap值为0,用第0行dayTab[0][i]计算 
/
    for (i=1; 
_; i++)
    {
        day = 
_______;
    }
    return day;         / 返回计算出的day的值 /
}
选项:
A:第18行:  ((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0)第20:    i<month第22行:  day + dayTab[leap][i]
B:第18行:  ((year % 4 == 0) || (year % 100 != 0)) || (year % 400 == 0)第20:    i<month第22行:  day + dayTab[i][leap]
C:第18行:  ((year % 4 == 0) && (year % 100 != 0)) && (year % 400 == 0)第20:    i<12第22行:  day + dayTab[leap][i]
D:第18行:  ((year % 4 != 0) && (year % 100 != 0)) || (year % 400 != 0)第20:    i<=month第22行:  day + dayTab[i][leap]
答案: 【第18行:  ((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0)第20:    i<month第22行:  day + dayTab[leap][i]

3、 问题:下面程序的功能是将一个字符串s2插入到字符串s1中,其起始插入位置为n。程序运行示例如下:main string:hello,world!sub string:cc site of begining:(<=12)5After instert:hellocc,world!按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求。#include <stdio.h>

include <string.h>

define N 100

int main()
{
    int n, i, j, k, len;
    char s1[N], s2[N], s3[2 * N];
    printf("main string:");
    gets(s1);
    printf("sub string:");
    gets(s2);
    len = strlen(s1);
    do
        {
            printf("site of begining:(<=%d)", len);
            scanf("%d", &n);
        }while (_);
        
    for (i = 0; i < n; i++)
       {
           s3[i] = s1[i];
       }
    for (j = 0; s2[j] != ‘\0’; j++)
      {
           
__;
      }
    for (_
; s1[k] != ‘\0’; k++)
     {
           ____;
     }
    s3[j + k] = ‘\0’;
    printf("After instert:%s", s3);
    return 0;
}
选项:
A:第17行:  n > len第25行:  s3[i + j] = s2[j]第27行:  k = n第29行:  s3[j + k] = s1[k]
B:第17行:  n < len第25行:  s3[i] = s2[j]第27行:  k = n第29行:  s3[j] = s1[k]
C:第17行:  n <= len第25行:  s2[j]=s3[i + j] 第27行:  k = 0第29行:  s3[j] = s1[k]
D:第17行:  n >= len第25行:  s3[j] = s2[j]第27行:  k = 0第29行:  s1[k] = s3[j + k]
答案: 【第17行:  n > len第25行:  s3[i + j] = s2[j]第27行:  k = n第29行:  s3[j + k] = s1[k]

4、 问题:下面程序的功能是从键盘输入一行字符(最长不超过80字符),用函数编程统计其中单词(以空格作为间隔符的字符串)的个数。基本思路是:当前被检验字符不是空格,而前一被检验字符是空格,则表示有新单词出现。按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求。(下面答案中两个单引号”中间都有一个空格)样例1:Input a string:How are you↙Numbers of words = 3样例2:Input a string:  How are you↙Numbers of words = 3#include <stdio.h>
int CountWords(char str[]);
int main()
{
    char  str[81];
    int num;
    printf("Input a string:");
    gets(str);
    num=CountWords(str);
    printf("Number of words=%d", num);
    return 0;
}

int CountWords(char str[])
{
    int  i, num;
    num = (_) ? 1 : 0;
    i=1;
    while (str[i]!=’\0′)
    {
        if (
____)
        {
            num++;
        }
         
__;
    }
    return num;
}
选项:
A:第17行: str[0] != ‘ ‘第21行: str[i]!=’ ‘ && str[i-1] == ‘ ‘第25行: i++
B:第17行: str[0] == ‘ ‘第21行: str[i]!=’ ‘ || str[i-1] == ‘ ‘第25行: i++
C:第17行: str[0] != ‘\0 ‘第21行: str[i]==’ ‘ && str[i-1] == ‘ ‘第25行: i++
D:第17行: str[0] != ‘ ‘第21行: str[i]!=’ ‘ && str[i-1] != ‘ ‘第25行: num++
答案: 【第17行: str[0] != ‘ ‘第21行: str[i]!=’ ‘ && str[i-1] == ‘ ‘第25行: i++

5、 问题:下面程序的功能是实现字符串逆序存放。程序运行结果如下:Input a string:ABCDEFGHI↙Inversed results:IHGFEDCBA按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求。#include <stdio.h>

include <string.h>

define N 80

void Inverse(char *pStr);
int main()
{
    char a[N];
    printf("Input a string:");
    gets(a);
    Inverse(a);
    printf("Inversed results:%s", a);
    return 0;
}

/ 函数功能: 实现将字符数组中的字符串逆序存放 /
void Inverse(__)
{
    int  len;
    char temp;
    char pStart;  / 指针变量pStart指向字符串的第一个字符 /
    char 
pEnd;   / 指针变量pEnd指向字符串的最后一个字符 /
    len = strlen(pStr);  / 求出字符串长度 /
    for (pStart=pStr,
___; pStart<pEnd; pStart++,_)
    {
        temp = *pStart;
        
_____;
        pEnd = temp;
    }
}
选项:
A:第16行:   char
pStr第23行:   pEnd=pStr+len-1             pEnd–第26行:   pStart = pEnd
B:第16行:   char pStr第23行:   pEnd=pStr+len             pEnd–第26行:   pStart = pEnd
C:第16行:  char pStr第23行:  pEnd=pStr+len-1            pEnd++第26行:   pStart = pEnd
D:第16行:  char pStr第23行:  pEnd=pStr+len+1            pEnd++第26行:   
pStart = pEnd
答案: 【第16行:   char
pStr第23行:   pEnd=pStr+len-1             pEnd–第26行:   pStart = pEnd】

6、 问题:下面程序的功能是从键盘输入一行字符(不超过80个),统计其中的英文字符、数字字符、空格和其他字符的个数。例如,输入的一行字符为*c language.***输出为English character:  9digit character:  0space:  1other character:  11按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求。#include <stdio.h>

include <string.h>

define STR_LEN 80

int main()
{
    char str[STR_LEN+1];
    int  len, i, letter = 0, digit = 0, space = 0, others = 0;
    printf("Please input a  string:");
    __;
    for (i = 0; 
_; i++)
        {
            if (_________)

本门课程剩余章节答案为付费内容
本文章不含期末不含主观题!!
本文章不含期末不含主观题!!
支付后可长期查看
有疑问请添加客服QQ 2356025045反馈
如遇卡顿看不了请换个浏览器即可打开
请看清楚了再购买哦,电子资源购买后不支持退款哦

   

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注