云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > c语言程序设计试题答案

c语言程序设计试题答案

  • 62 次阅读
  • 3 次下载
  • 2025/5/2 11:34:27

习 题 7

7.1 选择题。

(1)下列对字符串的定义中,错误的是: A 。

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

D) char str[] = {'F','O','R','T','R','A','N',0};

(2)以下程序段的输出结果是:____D_________

char a[] = \char *p = NULL;

for (p=a; p

A)ABCDE B) A B C D E C) E D C B A D)ABCDE BCDE CDE DE E

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

A)

#include main() { static char a[5];

a = \

printf(\}

B)

#include main() { static char a[7]= \ printf(\}

C)

#include main() { char a[5] = \ printf(\}

D)

#include main() { static char a[]=\ printf(\

1

}

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

void Exchange(int *p1, int *p2) { int p; p = *p1; *p1 = *p2; *p2 = p; }

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

(5)设有语句:int array[3][4]; 则在下面几种引用下标为i和j的数组元素的方法中,不正确的引用方式是:___D_____。

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

7.2 阅读下列程序,写出运行结果。 (1)

#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(\}

答案:6

(2)

#include main() { int a[] = {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,

(3)

#include char b[] = \char *a = \main() { int i = 0;

2

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

PROGRAM i = 7 margor gram

(4)

/* 源文件名为demo.c */

main(int argc, char *argv[]) { int i; for (i=0; i

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

答案: demo.exe This is a

program

7.3 阅读程序,按要求,在空白处填写适当的表达式或语句,使程序完整,并符合题目要求。 (1)下面函数实现strlen函数的功能,即计算指针p所指向的字符串中的实际字符个数。

unsigned int MyStrlen(char *p)

{ int len; len = 0; for (; *p != ‘\\0’ ; p++) { len ++ ; } return len ; }

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

unsigned int MyStrlen(char s[]) { char *p = s; while (*p != ‘\\0’ ) {

3

p++; } return p-s ; }

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

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

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

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

#include

void Print(char *arr[], int len);

void main() {

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

printf(\ Print(pArray, num); }

void Print(char *arr[], int len) {

int i;

for (i=0; i

printf(\ } }

答案:int num = sizeof(pArray) / sizeof(char);

应改为:int num = sizeof(pArray) / sizeof(char*);或: int num = sizeof(pArray) / sizeof(pArray[0]);

理由:pArray是一个存放了4个字符串指针的数组,其中每一个元素是一个指针,而非一个字符。

程序希望得到的运行结果如下:

Total string numbers = 4 Fred Barrey Wilma Betty

7.5 编写一个交换变量值的函数,利用该函数交换数组a和数组b中的对应元素。

4

搜索更多关于: c语言程序设计试题答案 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

习 题 7 7.1 选择题。 (1)下列对字符串的定义中,错误的是: A 。 A) char str[7] = \B) char str[] = \C) char *str = \D) char str[] = {'F','O','R','T','R','A','N',0}; (2)以下程序段的输出结果是:____D_________ char a[] = \char *p = NULL; for (p=a; p

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com