2015 2015春C语言程序设计(烟台大学) 最新满分章节测试答案
本答案对应课程为:点我自动跳转查看
本课程起止时间为: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反馈
如遇卡顿看不了请换个浏览器即可打开
请看清楚了再购买哦,电子资源购买后不支持退款哦