文档库 最新最全的文档下载
当前位置:文档库 › C语言程序课程设计实验报告(用一个字符数组保存一个英文句子)

C语言程序课程设计实验报告(用一个字符数组保存一个英文句子)

C语言程序课程设计实验报告(用一个字符数组保存一个英文句子)
C语言程序课程设计实验报告(用一个字符数组保存一个英文句子)

河南城建学院

《高级语言程序设计》课程设计报告

设计题目:用一个字符数组保存一个英文句子

专业:计算机科学与技术

班级:

设计人员:

指导教师:

计算机科学与工程学院

2015年06 月25日

一、课程设计题目

13.用一个字符数组保存一个英文句子。

二、设计要求

1)删除该英文句子中的前导空格,后导空格,并删除句子中多余的空格(单词之间只留一个空格);

2)统计该句子中,单词出现的频率;

3)查找并替换某个单词。

三、程序介绍

1.去除字符组中间空格。

void zhongjian(char a[])

{

int i,j,k; /*定义整形变量i,j,k。i,j 作为函数内循环的控制变量。定义k用于字符组长度存放。*/ k=strlen(a); /*将字符组a的长度存放于k 中。(字符组a即待处理的字符组)*/

for(i=0;i

if(a[i]!=' '

i++; /*条件控制,若当前字符不为空格,跳到下一位再进行循环。*/

else if(a[i]==' ')

if(a[i+1]==' ') /*当连续出现两个空格,需要去除一个空格*/

{

k=k-1; /*字符串总长度减一。*/ for(j=i;j

a[j]=a[j+1]; /*从第一个空格开始,后续所有字符前提一位,即去除第一个空格。*/

a[k]='\0'; /*去除空格后字符组长度减一,原字符组最后一位需要变为\0。*/

continue; /*去除空格后,继续从该位检测,直至不符合该循环条件。*/

}

else

i++; /*若不是连续两个空格,则跳到下个字符再进行循环。*/

printf("%s\n",a); /*输出处理后的字符组。*/ }

2.导入及导出函数

void daoru()

{

FILE *p; /*定义一个指针函数,用于指向需要打开的文件。*/

char b[30]; /*定义一个字符型组,用于存放导入文件地址。*/

system("cls"); /*清屏,使界面更美观。*/

printf("∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷\n");

printf("∷∷\n");

printf("∷请输入要打开的文件名∷\n");

printf("∷∷\n");

printf("∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷\n");

scanf("%s",b); /*得到导入文件名,存放在b 里*/

p=fopen(b,"r"); /*将导入文件以只读方式打开*/

if(p==NULL)

{

printf("∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷\n");

printf("∷文件不存在!请重新输入文件名!∷\n");

printf("∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷\n");

system("pause");

daoru(); /*若文件打开出错,则提示打不开,然后重新运行导入函数*/

}

else

fgets(a,1000,p); /*在p所指向的文件(即导入文件)中读入一个最长为999字符的字符串,并在最后加一个’\0’字符,

然后存放于字符组a中*/

}

void daochu()

{

int b; /*定义整形变量b,用于选择操作*/ FILE *p2; /*定义一个指向文件的指针变量*/ char c[30]; /*定义一个字符型组,用于存放导出文件地址*/

printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n");

printf("※请输入要保存到哪个文件?※\n");

printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n");

scanf("%s",c); /*得到导出文件名,存放在c里*/ p2=fopen(c,"w+"); /*将导出文件以读写方式打开*/ fputs(a,p2); /*将a里的字符串存放在p2指向的地址里*/

fclose(p2); /*关闭文件,防止数据丢失*/

printf("导出成功!文件保存在%s\n回到主界面(1)?退出程序(2)?\n",buf);

fflush(stdin); /*用于清除输入缓存防止下次用scanf输入时出现错误*/

scanf("%d",&b);

if(b==1)

zhujiemian();

else if(b==2)

tuichu(); /*根据用户输入进行跳转*/

}

四、算法流程图

1.算法图

2.算法说明

此程序通过函数实现了对文章的处理,,每个环节都可以用函数进行实现,使用者可以用函数实现对文章的输入、导入以及去除空格,统计,保存等各种操作的实现。

五、程序设计过程中遇到的问题及解决过程

1.函数比较长,经常出现没有定义就使用一个变量,比较容易发现及修改。

2.问题解决不彻底,例如去空格,最开始能去除,可是去除不完全,最后有重新整理想法,编写程序。

3.写的快就会出现函数字符写错,例如printf写成prntf,也很容易发现。

4.系统库里的函数理解不清晰,使用起来系统报错。最后熟悉了就没有这样的我问题了。

5.最开始考虑问题不全面,就会出现子函数单独运行没问题,放在一起就出问题,最后合在一起时一点点改动。

六、运行截图

1.欢迎界面

2.主界面

3.输入文章

4.导入文章

5.处理选择界面

6.统计界面

7.替换界面

8.导出文章

9.退出程序

七、参考文献

【1】谭浩强,《C语言程序设计》(第四版)[M],清华大学出版社,2008年

八、源程序

#include

#include

#include

#include

#include

void san();

void er();

void yi(); /*欢迎界面子函数*/

void zhujiemian(); /*主界面函数*/

void shuru(); /*输入文章函数*/

void daoru(); /*导入文章函数*/

void qiandao(char a[]); /*去除前导空格函数*/

void houdao(char a[]); /*去除后导空格函数*/

void zhongjian(char a[]); /*去除中间多余空格函数*/

void tongji(char a[]); /*统计单词频率函数*/

void tihuan(char a[]); /*替换单词函数*/

void daochu(); /*导出函数*/

void xuanze(); /*选择及跳转函数*/

void tuichu(); /*退出界面函数*/

char a[999]; /*用于文章存储字符组*/

char buf[200]; /*用于存储文章导出路径*/

int main()

{

int h;

getcwd(buf,sizeof(buf));

system("color 0a");

for(h=4;h>0;h--)

{

system("cls");

if(h==4)

{

printf("\n\n\n\n");

printf("\t\t ★★★★★★★★★★\n"); printf("\t\t ★★★★★★\n"); printf("\t\t ★★★★★★★\n"); printf("\t\t ★欢迎★使用★\n"); printf("\t\t ★★★\n");

printf("\t\t ★★★★\n");

printf("\t\t ★★★★\n");

printf("\t\t ★★\n"); printf("\t\t 加载中....\n");

Sleep(1000);

}

else if(h==3)

san();

else if(h==2)

er();

else

yi();

Sleep(700);

}

zhujiemian();

return 0;

}

void san()

{

system("cls");

printf("\n\n\n\n\n");

printf("\t\t\t\t\3\3\3\3\3\3\3\3\3\3\n");

printf("\t\t\t\t \3\3\n");

printf("\t\t\t\t \3\3\n");

printf("\t\t\t\t \3\3\n");

printf("\t\t\t\t\3\3\3\3\3\3\3\3\3\3\n");

printf("\t\t\t\t \3\3\n");

printf("\t\t\t\t \3\3\n");

printf("\t\t\t\t \3\3\n");

printf("\t\t\t\t\3\3\3\3\3\3\3\3\3\3\n");

}

void er()

{

system("cls");

printf("\n\n\n\n\n");

printf("\t\t\t\t\3\3\3\3\3\3\3\3\3\3\n");

printf("\t\t\t\t \3\3\n");

printf("\t\t\t\t \3\3\n");

printf("\t\t\t\t \3\3\n");

printf("\t\t\t\t\3\3\3\3\3\3\3\3\3\3\n");

printf("\t\t\t\t\3\3\n");

printf("\t\t\t\t\3\3 \n");

printf("\t\t\t\t\3\3 \n");

printf("\t\t\t\t\3\3\3\3\3\3\3\3\3\3\n");

}

void yi()

{

system("cls");

printf("\n\n\n\n\n");

printf("\t\t\t\t \3\3\n");

printf("\t\t\t\t \3\3\3\3\n");

printf("\t\t\t\t \3\3\n");

printf("\t\t\t\t \3\3\n");

printf("\t\t\t\t \3\3\n");

printf("\t\t\t\t \3\3\n");

printf("\t\t\t\t \3\3\n");

printf("\t\t\t\t \3\3\n");

printf("\t\t\t\t \3\3\3\3\3\3\n");

}

void zhujiemian()

{

int b;

system("cls");

printf(" \3\3\3\3\3\3 \3\3\3\3\3\3\n");

printf(" \3\3\3\3\3\3\3\3\3\3

\3\3\3\3\3\3\3\3\3\3\n");

printf(" \3\3\3\3\3\3\3\3\3\3\3\3\3

\3\3\3\3\3\3\3\3\3\3\3\3\3\n");

printf("

\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\n");

printf(" \3\3\3\3\3\3\3\3\3\3计科\3一班

\3\3\3\3\3\3\3\3\3\3\n");

printf("

\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\n");

printf(" \3\3\3\3\3\3\3\3\3\3\3金\3航

\3\3\3\3\3\3\3\3\3\3\n");

printf(" \3\3\3\3\3\3\3张勇\3乐乐\3\3\3\3\3\3\n");

printf("

\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\n");

printf("

\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\n");

printf("

\3\3\3\3\3\3\3\3\3\3\3\n");

printf(" \3\3\3\3\3\3\3\n");

printf(" \3\3\3\n");

printf(" \3\n");

printf(" ◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆\n");

printf(" ◆ 1.输入文章◆\n");

printf(" ◆ 2.导入文章◆\n");

printf(" ◆ 3.退出程序◆\n");

printf(" ◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆\n");

scanf("%d",&b);

switch(b)

{

case

(1):shuru();qiandao(a);houdao(a);zhongjian(a);xuanze();break;

case

(2):daoru();qiandao(a);houdao(a);zhongjian(a);xuanze();break;

case (3):tuichu();

}

}

void shuru()

{

system("cls");

printf(" ⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙\n");

printf("⊙

⊙\n");

printf("⊙请输入文章: ⊙\n");

printf("⊙

⊙\n");

printf(" ⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙

⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙\n");

fflush(stdin);

gets(a);

}

void xuanze()

{

int x;

system("cls");

printf(" ⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙

⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙\n");

printf("⊙处理后文章

⊙\n");

printf(" ⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙

⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙\n");

printf("\n");

printf("%s\n",a);

printf("\n");

printf("〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓

〓〓〓〓〓〓〓〓〓〓〓〓〓\n");

printf("〓 1.返回主菜单

〓\n");

printf("〓 2.统计

〓\n");

printf("〓 3.替换

〓\n");

printf("〓 4.导出

〓\n");

printf("〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓

〓〓〓〓〓〓〓〓〓〓〓〓〓\n");

printf("请输入您的选择:");

scanf("%d",&x);

switch(x)

{

case(1):a[0]='\0';zhujiemian();break;

case(2):tongji(a);break;

case(3):tihuan(a);break;

case(4):daochu();

}

}

void daoru()

{

FILE *p;

char b[30];

system("cls");

printf("∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷\n");

printf("∷∷\n");

printf("∷请输入要打开的文件名∷\n");

printf("∷∷\n");

printf("∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷\n");

scanf("%s",b);

p=fopen(b,"r");

if(p==NULL)

{

printf("∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷\n");

printf("∷文件不存在!请重新输入文件名!∷\n");

printf("∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷\n");

system("pause");

daoru();

}

else

fgets(a,1000,p);

}

void qiandao(char a[])

{

char c;

int i,j,k=0,n;

n=strlen(a);

for(i=0;(c=a[i])!='\0';i++) {

if(c==' ')

k=k+1;

else

break;

}

n=n-k;

for(j=0,i=k;j

a[j]=a[i];

}

a[n]='\0';

}

void houdao(char a[])

{

int j,k=0,n;

n=strlen(a);

for(j=n-1;a[j]!='\0';j--) {

if(a[j]==' ')

k=k+1;

else

break;

}

n=n-k;

a[n]='\0';

}

void zhongjian(char a[])

{

int i,j,k;

k=strlen(a);

for(i=0;i

if(a[i]!=' ')

i++;

else if(a[i]==' ')

if(a[i+1]==' ')

{

k=k-1;

for(j=i;j

a[j]=a[j+1];

a[k]='\0';

continue;

}

else

i++;

printf("%s\n",a);

}

void tongji(char a[])

{

int i,j=0,k=0,x;

char m;

char y[30],z[30];

printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n");

printf("※请输入需要统计的单词※\n");

printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n");

scanf("%s",y);

for(i=0;i<(strlen(a)+1);i++)

if(a[i]!='

'&&a[i]!=','&&a[i]!='.'&&a[i]!='!'&&a[i]!='?'&&a[i]!=';'&&a[i]!= '\0')

{z[j]=a[i];z[j+1]='\0';j++;}

else

{ j=0;

if(strcmp(y,z)==0)

{

k=k+1;

z[0]='\0';

}

}

printf("%s这个单词出现了%d次!\n",y,k);

system("pause");

xuanze();

}

void tihuan(char a[])

{

int i,j=0,k=0,d,b,c;

int x;

char y[30],z[30],m[30],x1[999];

printf("请输入需要被替换的单词\n");

scanf("%s",y);

printf("\n");

printf("请输入需要替换成什么单词?\n");

scanf("%s",m);

for(i=0;i<(strlen(a)+1);i++)

if(a[i]!='

'&&a[i]!=','&&a[i]!='.'&&a[i]!='!'&&a[i]!='?'&&a[i]!=';'&&a[i]!= '\0')

{z[j]=a[i];z[j+1]='\0';j++;}

else

{ j=0;

if(strcmp(y,z)==0)

{

strcpy(x1,a);

d=strlen(m)-strlen(y);

for(b=0;b<999-i;b++)

a[i+d+b]=x1[i+b];

for(c=0;c

a[i-strlen(y)+c]=m[c];

b=0;c=0;x1[0]='\0';z[0]='\0';

}

}

printf("替换后的文章为\n");

printf("%s\n",a);

system("pause");

xuanze();

}

void daochu()

{

int b;

FILE *p2;

char c[30];

printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n");

printf("※请输入要保存到哪个文件?※\n");

printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n");

scanf("%s",c);

p2=fopen(c,"w+");

fputs(a,p2);

fclose(p2);

printf("导出成功!文件保存在%s\n回到主界面(1)?退出程序(2)?\n",buf);

fflush(stdin);

scanf("%d",&b);

if(b==1)

zhujiemian();

else if(b==2)

tuichu();

}

void tuichu()

{

C语言程序设计实验报告(数组)

C语言程序设计实验报告(数组) 1实验目的 (1)熟练掌握一维数组,二维数组的定义,初始化和输入、输出方法; (2)熟练掌握字符数组和字符串函数的使用; (3)掌握与数组有关的常用算法(查找、排序等)。 2实验内容 编写函数catStr(char str1[],char str2[])用于进行两个字符串的连接,编写函数lenStr(char str[])用于统计一个字符串的长度,并在主函数中调用。 要求: 1、不允许用strcat()和strlen()字符处理库函数; 2、在主函数以直接初始化的方式输入两个字符串str1和str2.调用函数 strlen()计算并返回两个字符串的长度; 3、调用函数catstr()连接两个字符串(将str2连接在str1后面); 4、调用函数lenstr()计算并返回连接后字符串的长度; 5、在主函数中输入两个原始的字符串及几个字符串的长度,以及处理后字 符串及其长度。

3算法描述流程图

4源程序 #include #include void catStr(char str1[],char str2[]) { int i,j; for (i=0;str1[i]!='\0';i++); for(j=0;str2[j]!='\0';j++) str1[i+j]=str2[j]; str1[i+j]='\0'; } lenStr(char m[] ) {int i;

for (i=0;m[i]!='\0';i++); printf("%d",i); } void main() {char s1[50]="forever",s2[50]="more"; printf("s1=%s,s2=%s",s1,s2); printf("\ns1的长度:"); lenStr(s1); printf("\ns2的长度:"); lenStr(s2); catStr(s1,s2); printf("\n连接后的字符:"); printf("%s\n",s1); printf("连接后字符的长度:"); lenStr(s1); printf("\n"); } 5测试数据 s1=forever, s2=more 6运行结果 7出现问题及解决方法 在输入程序时,少写了半边引号,调试时发现存在错误,找到了错误并加以改正。无论什么事,细心都是必不可少的,认真是解决问题的关键。 8实验心得 通过本次实验,对于函数的定义和声明,数组以及循环语句有了进一步的认识,掌握了字符数组和字符串函数的使用,以及与数组有关的常用算法。此次实验不是调用strlen()和strcat()函数,而是通过自己设计程序来进行字符串的连接以及计量字符串的长度,由此我学会了如何去理清自己的思路来设计程序。

C语言程序设计习题答案(1-5章)

C 语言程序设计习题答案 习题一 C 语言程序设计概述 一、名词解释 (1)程序P1 (2)程序设计P1 (3)机器语言P1 (4)汇编程序P2 (5)高级语言P2 (6)编译程序P3 (7)解释程序P3 (8)算法P4 (9)结构化的程序设计P9 二、简述题 1. 设计程序时应遵循哪些基本原则?P4 答:正确性、可靠性、简明性、有效性、可维护性、可移植性。 2. 算法的要素是什么?算法具有哪些特点? 答:算法的要素是:操作与控制结构;算法的特点有:有穷性、确定性、有效性、有零个或多个输入、有一个或多个输出。 3. 算法的表示形式有哪几种? 答:算法的表示形式有:自然语言、传统流程图、伪代码、结构化的流程图(N_S 流程图,盒图)。 4. 有哪三种基本结构? 答:三种基本结构是:顺序结构、选择结构和循环结构。 5. 传统流程图与N-S 流程图最大的区别是什么? 答:N-S 流程图去掉了在传统流程图中常用的流程线,使得程序的结构显得更加清晰、简单。 三、用传统流程图、N-S 图分别表示求解以下问题的算法。 1. 有3个数a ,b ,c ,要求按由大到小的顺序把它们输出。 2. 依次将10个数输入,求出其中最大的数 和最小的数并输出。 3. 求1+2+3+…+100的值。 4. 求1×2×3×…×10的值。

5. 求下列分段函数的值。 6. 求100~200之间的所有素数。 7. 求一元二次方程ax 2+bx+c=0的根。分别考虑d=b 2-4ac 大于0、等于0和小于0三种情况。 四、注释下面C 程序的各个组成部分。 main() /*主函数 */ { /*程序开始 */ int a,k,m; /*定义三个用来存放整数的变量 */ a=10; /*将整数10赋值给变量a */ k=2; /*将整数2赋值给变量k */ m=1; /*将整数1赋值给变量1 */ a=(k+m)*k/(k-m); /*先求出算术表达式的值,并将其赋值给变量a */ printf("%d\n",a); /*在屏幕上打印出变量a 的值 */ } /*程序结束 */ 习题二 数据类型、运算符与表达式 一、选择题 1~10:BCDCB DDBCA 11~20: ADDAA DBADC 21~28: DABAD CDD 3X (X<1) 4X-1 (X=1) 5(X-1)+6 (1

C语言程序设计第三版谭浩强课后习题答案完整版

1.6 编写一个程序,输入a、b、c 三个值,输出其中最大值。 课后习题答案完整版 第一章 1.5 请参照本章例题,编写一个C 程序,输出以下信息: ************************** Very Good! ************************** 解:mian() {int a,b,c,max; printf( “请输入三个数a,b,c:\n ” ); scanf( “%d,%d,%”d ,&a,&b,&c); C语言程序设计第三版谭浩强 解: mian() {printf( ”); “************************** printf( “”X “ n” ); printf( “Very Good!” \ n”); printf( “”X “ n” ); printf( “************************** ); max=a; if(max

{char #include c1='a',c2='b',c3= 'c',c4= ' \101 ',c5= ' 116'; printf( “a%cb%c n”,c1,c2,c 3); printf( “ b%c %c” ,c4,c5); } 解: aa 口bb 口口口cc 口口口口口口abc A 口N 3.7 要将"China" 译成密码,译码规律是:用原来字母后面的第 4 个字母代替原来的字母.例如,字母"A" 后面第 4 个字母是"E" . "E"代替"A"。因此,"China"应译为"Glmre" 。请编一程序,用赋初值的方法使cl 、c2、c3、c4、c5 五个变量的值分别为, ' C'、h'、i '、n'、a'经过运算,使cl、c2、c3、c4、c5分别变为'G'、' I '、' m >' r'、’ e',并输出。main() { char c1=' C' ,c2=' h' ,c3= ' i ' ,c4= ' n' ,c 5=' a' ; c1+=4; c2+=4; c3+=4; c4+=4; c5+=4; printf(" 密码是%c%c%c%c%c\n",c1,c2,c3,c4,c5); } 运行结果: 密码是GImre 3.9 求下面算术表达式的值。 解: 1 )x+a%3*(int)(x+y)%2/4

完整word版单片机C语言应用程序设计第五版马忠梅课后习题答案

第一章单片机由哪几部分组成?、80511可P2P0和个8位并行I/O口(其中8位中央处理器CPU、片内振荡电器及其时钟电路,4,个中断优先级)个中断源(具有2位定时器/计数器,5 用于外部存储器的扩展),2个16 全双工串行口,布尔处理器。单片机有多少个特殊功能寄存器?它们可以分为几组,各完成什么主要功能?、80512 表P7 1-3个特殊功能寄存器,在物理 上是分散在片内各功能部件中,在数218051单片机内部有答:中,以便能使用统一的直接寻址方式80H~FFH学上把它们组织在内部数据存储器地址空间来访问。这些特殊功能寄存器颁 在以下各个功能部件中:主要完;DPH两个8位寄存器组成)PSW、SP、DPTR(由DPL和(1)CPU:ACC、B、成运算和逻辑判断功能;完成中断管理IP、IE;(2)中断系统:完成 定时或者计数功能、TH1;TCOM、TL0、TH0、TL1(3)定时器/计数器:TMOD、口带有可选的纵向拓展I/O完成I/O口功能,其中部分P1P0、、P2、P3(4)并行I/O口:功能。主要完成数据的串行发送和接收SBUF、PCON5)串行口:SCON、(、决定程序执行顺序的寄存器是哪几个?它是几位寄存器?是否为特殊功能寄存器?它的3 内容是什么信息?它的内容是下一条 将要执行的不是特殊功能寄存器,它是16位寄存器,是程序计数器PC,程序的地址的用途是什么?它由哪几个特殊功能寄存器组DPTRDPTR是什么特殊功能寄存器?4、成?位)和8DPL (数据指针低是16位数据指针寄存器,它由两个8位特殊功能寄存器DPTR位地址,作地址寄存器用,可寻址外部16DPTR用于保存DPH(数据指针高8位)组成,数据存储器,也可寻址程序存储器。线?它们和单片机对外的地址总线和数据总线有什么关系?地址的引脚有多少I/O5、8051 总线和数据总线各是多少位?线可以在外扩存储器时分时复根I/OP0口8I/O8051单片机的40个引脚中有32根口线,和P3.6位地址总线,P2口作为高8用作为外部存储器的低8位地址 总线和8位数据总线,位。16位,数据总线为8P3.7分别作为外部存储器的写和读控制线。地址总线单片机堆栈的最大容量不能超过多少字8051、什么是堆栈?堆栈指针SP的作用是什么? 6 节?堆栈是数据寄存器的一部分,这一部分数据的存取是按照先入后出、后入先出的原则进行的。堆栈指针SP在启用堆栈之前是用来决定堆栈的位置。如在8051芯片复位后,SP的值为07H,则决定了堆栈从08H开始设置。修改SP值可以使堆栈设置在内部RAM的其它部分。在堆栈启 用之后,SP指向堆栈顶部,即由SP来决定数据读出和存入堆栈的地址。8051单片机内部用作 数据区的RAM的容量为128个字节,前8个字节要用来作为工作寄存器R0-R7。堆栈可以从08H开始设置直到7FH,共120个字节。但这只是最大可能的容量。一般情况下,内部RAM还要分出一部分作一般的数据区,或者还要用其中的位寻址区来用于位操作,等等。所以,8051 的堆栈区是比较小的,使用时要注意到这个限制。 8、8051内部RAM低128字节可分为几个区域?其中通用寄存器区的字节地址范围为多少?如何实现寄存器组的切换?可位寻址区的字节地址和位地址范围分别为多少? 8051内部RAM的低128字节可以分为通用寄存器区、位寻址区、便签(工作或者堆栈RAM)1 中的个字节。设置PSW区和特殊功能寄存器区。通用寄存器区的地址从00H到1FH共3212816个字节RS1可以切换当前通用寄存器组。位寻址区地址从20H到2FH共位RSO和127. 0到位,占用地址8051单片机对外有几条专用控制线?其功能是什么?9、,高电位有效,当有条专用控制线。它们是复位信号线RST一般的说法是8051单片机有4,低电平有效,当此复位信号从此线输入时,使单片机复位。访问外部存贮器控制信号EA先使用片单片机全部使用外部指令存贮器,而当此控制线为高电平时,控制线为低电平时,1000H(地址为,在4KB范围之外,才使用指令存贮器FFFFH内的4KB指令存贮器(0000H-)和外部地址锁存器允PSEN-FFFFH)。另有两条输出控制:外部程序存贮器的读选通信号。前者是低电平有效,在读外部程 序存贮器时使用。后者是高电平有效,在锁存ALE许信号P0口输出的低8位地址时使用。端必须怎样处理?为什么?10、8031的/EA为有效时,/EA访问内部ROM,当端是访问外部程序

C语言程序设计经典必背程序

C语言程序设计典型编程必背 1.计算机1-3+5-7+。。。-99+101的值 #include main ( ) { int i,t=1,s; s=0; for(i=1;i<=101;i+=2) { t=t*i; s=s+t;t=t>0?-1:1; } printf(“%d\n”,s); } 2.输入一个十进制数,将他对应的二进制数的各位反序,形成新的十进制数输出。11—1011—1101—13 #include main ( ) { int n,x,t; printf(“shuruzhengshu:”); scanf(“%d”,&n); x=0; while(n!=0) { t=n%2; x=x*2+t;n=n/2; } printf(“xindezhengshu:%d\n,x”); } 3.给出年月日,计算出该日是该年的第几天。 #include main ( ) { int year,month,day,days,i,d; printf(“shuru nian,yue,ri:”); scanf(“%d,%d,%d”,&year,&month,&day); days=0; for(i=1;i

case 7: case 8: case 10: case 12:d=31;break; case 4: case 6: case 9: case 11:d=30;break; case 2:if(year%4==0&&year%100!=0||year%400==0) d=29; else d=28; } days+=d; } printf(“%d nian %d yue %d ri shigainiande %d tian。\n”,year,month,day,days+day); } 4.求100——200间的素数。按每行10个数打印输出。要求在奇数中找素数。 #include main ( ) { int m,k,i,n=0; for(m=101;m<=200;m=m+2) { k=sqrt(m); for(i=2;i<=k;i++) if(m%i==0) break; if(i>k+1) { printf(“%d”,m);n=n+1; } if(n%10==0) printf(“\n”); } printf(“\n”); } 5.下面的程序功能是求1!+3!+5!+。。。+n!的和。 #include main ( ) { long int f,s; int i,j,n;s=0;

C语言程序设计第三版习题库答案

C 语言程序设计(第三版)习题库 1、设圆半径r=,圆柱高h=3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。用scanf 输入数据,输出计算结果,输出时要求文字说明,取小数点后两位数字。请编程序。 #include<> main(){ floatr,h,C1,Sa,Sb,Va,Vb; scanf(__”%f ”__,&r); scanf(”%d ”,__&h _);; C1=2**r; Sa=*r*r; Sb=4*Sa; Va=4**r*r*r/3; Vb=Sa*h; printf(___”Cl=%.2fSa=%.2fSb=%.2fVa=%.2fVb=%.2f ”,Cl,Sa,Sb,Va,Vb ); } 2、输入一个华氏温度,要求输出摄氏温度。公式为c=5(F-32)/9 输出要求有文字说明,取位2小数。 #include<> main(){ floatF,c; scanf("%f",&F); ____c=5*(F-32)/9______; printf("c=%.2f",c); } 3、有一函数:?? ???≥-<≤-<=10113101121x x x x x x y 写一程序,输入x 值,输出y 值。 #include<> main(){ intx,y; printf("输入x :"); scanf("%d",&x); if(x<1){/*x<1*/ y=x; printf("x=%3d,y=x=%d\n",x,y);

}elseif(____x<10_______){/*1≤x-10*/ _____y=2*x-1_______; printf("x=%3d,y=2*x-1=%d\n",x,y); }else{/*x≥10*/ y=3*x-11; printf("x=%3d,y=3*x-11=%d\n",x#include"" main() { intx,y; scanf("%d",&x); if(x<1) {y=x;} elseif(x>=1&&x<10) {y=2*x-1;} else {y=3*x-11;} printf("%d",y); }#include"" main() { intx,y; scanf("%d",&x); if(x<1) {y=x;} elseif(x>=1&&x<10) {y=2*x-1;} else {y=3*x-11;} printf("%d\n",y); }#include"" main() { intx,y; scanf("%d",&x); if(x<1) {y=x;} elseif(x>=1&&x<10) {y=2*x-1;} else {y=3*x-11;} printf("%d",y); }scanf("%d",&x);

c语言程序设计第五版习题答案()

习题解析与答案 第1章C语言概述 一.简答题 1.概述C语言的主要特点。 【解答】 (1)语言简洁、紧凑,使用方便、灵活。 (2)数据类型丰富,表达能力强。 (3)运算符多样。C语言中的运算符包含的范围非常广泛。 (4)具有结构化的控制语句。如if…else语句、while语句、do while语句、switch语句、for语句。 (5)允许直接访问物理地址。C语言中含有的位和指针运算,能够直接对内存地址进行访问操作。 (6)所生成的目标代码质量高,可移植性好。 2.构成C语言程序的基本单位是什么它由哪几部分组成 【解答】函数是构成C语言程序的基本单位。一个完整的C程序一般由文件包含、宏定义、函数说明、变量和一个或若干个函数组成。 3.C语言程序的运行一般要经过哪几个步骤 【解答】(1)编辑;(2)编译;(3)连接,生成EXE文件;(4)执行。 二.运行程序写结果 1.输入下面程序并运行。 main() { int a1,a2,x; a1=100;

a2=50; x=a1-a2; printf(″x=%d\n″,x); } 【解答】运行结果为:x=50 2.输入下面程序并运行。 main() { int a1,a2,x; a1=10; a2=20; x=a1*a2; printf(″a1=%d,a2=%d\n″,a1,a2); printf(″x=%d\n″,x); } 【解答】运行结果为:a1=10,a2=20 x=200 3.输入下面程序并运行。 #include <> main() { printf("******\n"); printf(" *****\n"); printf(" ****\n"); printf(" ***\n"); printf(" **\n"); printf(" *\n"); } 【解答】运行结果为:****** ***** **** *** ** *

第5章-C语言程序设计(第2版)教材习题答案

【教材】《C语言程序设计(第2版)》清华大学出版社,黄保和,江弋编著。2011年10月第二版。ISBN:978-7-302-26972-4。售价:35元。 【答案版本】本习题答案为2012年2月修订版本。 一、选择题 1. 设有程序段”int k=10; while(k=0) k=k-1;”,则下面叙述正确的是D)循环体语句一次也不执行。 A. while循环执行10次 B. 循环是无限循环 C. 循环体语句执行一次 D. 循环体语句一次也不执行 2. 设有程序段”int x=0,s=0;while(!x!=0) s+=++x; printf(“%d”,s);”则A)运行程序段后输出1。 A. 运行程序段后输出1 B. 程序段执行无限次 C. 运行程序段后输出0 D. 程序段中的控制表达式是非法的 3. 下面循环语句中,错误的是D) int a=1,b=2;do b-- while(b= =0);。 A. int a=1,b=2; while(b--); B. int a=1,b=2; do a++; while(a==b); C. int a=1,b=2; while(a=3); D. int a=1,b=2; do b-- while(b==0); 4. 已知”int i=5;”,下列do…while循环语句的循环次数为C) 5。 do{ printf(“%d\n”,i--); } while(i!=0); A. 0 B. 1 C. 5 D. 无限 5. 循环语句”for(int i=0,j=10; i==j; i++,j--)”的循环次数是A) 0。 A. 0 B. 5 C. 10 D. 无限 6. 下述有关break语句的描述中,不正确的是C) break语句用于if语句的内嵌语句内,它结束该if语句。 A. break语句用于循环体内,它将结束该循环 B. break语句用于开关语句,它结束该开关语句 C. break语句用于if语句的内嵌语句内,它结束该if语句 D. break语句在一个循环体内可使用多次 7. 下面关于循环语句的描述中,错误的是B)循环体内必须同时出现break语句和continue 语句。 A. 循环体内可以包含有循环语句 B. 循环体内必须同时出现break语句和continue语句 C. 循环体内可以出现选择语句 D. 循环体可以是空语句 8. 以下不是死循环的是D)for(;(c=getchar()!=’\n’);)printf(“%c”,c);。 A. for(; ; x+=i); B. while(1) { x++; } C. for( i=10; ; i--) sum+=i; D. for( ; (c=getchar() )!=’\n’ ; ) printf( “%c”,c); 9. 执行语句”for(i=0;i++<3;);”后,变量i的值为C) 4。 A.2 B. 3 C. 4 D. 5 10.语句”for(x=0,y=0;y!=1&&x<4;x++);”是C)循环4次。 A. 无限循环 B. 循环次数不定 C. 循环4次 D. 循环3次

标准C语言程序设计第五版课后练习题答案

课后练习题答案 Chapter 1 1.1×√×√√×√××√ 1.2b c 1.3ad 1.4semicolon printf math、h \n Chapter 2 2、1 ×√××√√×√××√× 2、2 typedef 255 external const Chapter 3 3、1 ×√××√√×××√√√ 3、2 integer modula 6 logical sizeof paratheses typeconversion precedence 3、3 F F T F F F 3、4 F T T T F 3、5 (b) (c) 3、6 0 -2 7 10、25 false 3 3 1 3、10 0 1 1 1 1 3、11 d } 100 3、12 110 111 3、13 1 3、14 200 3、15 x<=y 3、16 TRUE 3、19 2 1 4 3、20 -40 40 Chapter 4 4、1 ×√√√√√××√√√× 4、2 %hd %x ctype、h %l %*d [^] blank 6 - %e 4、4 (a) scanf(“%d %c %d”, &a, &b, &c); (b)scanf(“%d %f %s”, &a, &b, &c); (c) scanf(“%d-%d-%d”, &a, &b, &c); (d) scanf(“%d %s %d”, &a, &b, &c);

4、5 (a)10x1、230000 (b)1234x 1、23 (c)1234 456、000000 (d) “123、40 ” (e) 1020 1222(乱码) 4、7 (a)1988 x (b)乱码 (c)120 乱码 (d)乱码 x 4、8 (a)1275 -23 5、740000 (b) 1275 -235、740000 (c) 0 0、000000 (d) 1275xxxx-235、74 (e)Cambridge (f)1275 Cambridge 4、10 1988 无无 Chapter 5 5、1 √×√××××××√ 5、2 && switch break if-else x=y 5、4 (a)x = 2; y = 0; (b) x = 1; y = 0; 5、5 (a) if (grade <= 59) if (grade >= 50) second = second + 1; (b) if (number > 100) printf(“out of range”); else if (number < 0) printf(“out of range”); else sum = sum + number; (c) if (T > 200) printf(“admitted”); else if (M > 60) {if (M > 60) printf(“admitted”);} else printf(“not admitted”); 5、6 F T F T 5、8 (a) x > 10 (b) (x != 10)||(y ! = 5) || (z >= 0) (c) (x + y != z) || (z > 5) (d) (x > 5) || (y != 10) || (z >= 5) 5、9 (a) x = 5; y = 10; z = 1 (b) x = 5; y = 10; z = 1 (c) x = 5; y = 0; z =0 (d) 无变化 5、10 (a) x= 0; y = 2; z = 0; (b) x = 1; y = 2; z = 0; 5、12 8 5、13 Delhi Bangalore END 5、14 2 4 4 8 5、15 0 0 2 5、16 25 5、17 Number is negative 5、18 ABC

最新C语言程序设计模拟试题5(附答案)

《C语言程序设计》模拟试题五 一、填空题(40分) 1.计算机软件分为和;C语言适合编 写 . 2.十进制数35=( ) 2 =( ) 8 =( ) 16 3.已知一个数[X]补=11111001,求[X] 原 = 及 X= . 4.设x=2.5,a=7,y=4.7.求下列算术表达式的值. x+a%3*(int)(x+y)%2/3= . 5.将算式|3-e x ln(1+Y)|写成C语言表达 式. 6.设a=5,b=9.则printf(“a=%d,b=%4d”,a,b)输出为: . 7.用C语句写出累加器、累乘 器、计数器. 8.上机操作时,CTRL+F9键的功能是 ,F2键的功能 是ALT+F5键的功能是 . 9.下列程序段对应的数学表达式 是 int t,n,s=0; scanf(“%d”,&n); for(i=1;i<=n;i++) { t=1; for(j=1;j<=i;j++) t=t*j; s=s+t;} 10.以下程序用“顺序查找法”查找数组a中是否存在某一关键字. 请填空. main() {int a[10]={25,57,48,38,12,92,88,48,16,25}; int i,x; scanf(“%d”,&X); for(i=0;i<10;i++) if (x==a[i]) {printf(“Found!The index:%d\n”a[i]);(1) ;} if (2) printf(“Can not found!”); }

二、单选题(15分) 1.一个C程序的执行是从 . A.本程序的main()函数开始,到main函数结束. B.本程序文件的第一个函数开始,到本程序文件的最后一个函数结束. C.本程序的main()函数开始,到本程序文件的最后一个函数结束. D.本程序文件的第一个函数开始,到本程序main函数结束. 2.根据下面的程序及数据的输入和输出形式,程序中输入语句的正确形式 为 . main() { int a,b,c; 输入语句; printf(“%c%c%c”,a,b,c); } 输入形式:A B C 输出形式:ABC A.scanf(“%c%c%c”,&a,&b,&c); B.scanf(“%c,%c,%c”,&a,&b,&c); C.scanf(“%c %c %c”,&a,&b,&c); D.scanf(“%c%c”,&a,&b); 3.给出下列程序的运行结果 . main() {int i,j,k,x=0; for(i=2;i<=5;i++) for(j=7;j>=3;j-=2) for(k=4;k<=11;k+=4) x++; printf(“x=%d”,x);} A.x=64 B. x=36 C.x=60 D. x=24 4.若x,i,j和k都是int型变量,则表达式计算下面表达式后,x的值 为 . x=(i=4,j=16,k=32) A. 4 B. 16 C.32 D.52 5.以下不正确if语句形式是 . A.if ( x>y && x!=y ); B.if ( x = = y ) x + = y; C. if ( x != y ) scanf(“%d”,&x) else scanf(“%d”,&y);

C语言复习题及答案 第七章 数组教程文件

C语言复习题及答案第七章数组

第七章数组 (8学时) 学习目的与要求: 1 、重点掌握一维数组的定义和引用; 2 、基本掌握二维数组的定义和引用; 3 、重点掌握字符型数组的定义与引用; 4 、能正确使用字符串处理函数; 5 、学会使用数组解决实际问题。 重点: 1 、一维数组的定义与引用; 2 、二维数组的定义与引用; 3 、字符数组的定义与引用; 第1讲 知识归纳: 1、一维数组的定义:类型说明符数组名[ 常量表达式 ] ; (1) (1)数组名后必须用方括弧 [ ] ,用其他括弧均错误; (2) 方括弧中的常量表达式表示数组的元素个数; (3) 方括弧中的常量表达式,必须是能计算出具体数值,且不改变的常量,不能是变量; 2、一维数组的引用: 数组名[ 下标 ] //下标从0开始,可以是整型常量或整型表达式; (1) 注意:数组元素引用时,不要超出数组范围; 如 int a[10] ; //可以引用的数组元素为a[0]……a[9] , a[10] 不是本数组元素; 3、一维数组的初始化: (1) (1)可以在定义数组后,立刻赋值;如 int a [3] = { 1,3, 5} ; 但下面这样是错误的: int a[3] ; a = { 1,3, 5} ; (2) (2)可以给数组的部分元素赋值,不赋值的元素,默认值为int 0, char, ‘’, float 0.0 ; 如 int a [3]= {1,3 } ; //a[0] =1 ; a[1]= 3 ; a[2]= 0 ; (3) 在对数组全部元素赋初值时,可以不指定元素个数; (4) 可以在循环控制下,给数组各元素赋值; 如:int a[10] ; for ( i=0 ; i <10 ;i ++ ) a [ i ] = i ; 基础训练(A) 一、选择题 1、在c语言中,引用数组元素时,其数组下标的数据类型允许是()。

C语言程序设计教程第三版(李凤霞)习题答案

教材习题答案 第一章 习题 一、单项选择题 1. C 2. B 3. B 4. C 5. D 6. A 7. C 8. A 二、填空题 1. 判断条件 2. 面向过程编程 3. 结构化 4. 程序 5. 面向对象的程序设计语言 6. 基本功能操作、控制结构 7. 有穷性 8. 直到型循环结构 9. 算法 10.可读性 11.模块化 12.对问题的分解和模块的划分

习题 一、单项选择题 1. B 2. D 3. C 4. B 5. A 6. A 7. B 8.C 二、填空题 1. 主 2. C编译系统 3. 函数、函数 4. 输入输出 5. 头 6. .OBJ 7. 库函数 8. 文本 第三章 习题 一、单项选择题 1. D 2. B 3. A

5. C 6. D 7. D 8. B 9. B 10.C 11.A 12.D 13.C 14.C 15.C 16.A 17.C 18.C 19.C 20.D 21.A 22.D 23.D 24.D,A 25.D 26.A 27.B 二、填空题 1. 补码 2. 308 10 - ±

~)308 10 ,15 —6 2. 308 10 - ± (~)308 10 ,15

6 3. 逻辑 4. 单目,自右向左 5. 函数调用 6. a 或 b ( 题目有错 , 小括号后面的 c<=98 改成( c>=97&&c<=98 )就可以得到所给的答案了) 7.

8. 65 , 89 第四章 习题 一、单项选择题 1. D 2. C 3. D 4. A 5. D 6. B 7. A 8. C 9. B 10.B 二、填空题 1. 一

(完整版)《C语言程序设计》基本知识点

《C语言程序设计》教学基本知识点 第一章C语言基本知识 1.C源程序的框架 尽管各个C源程序的功能千变万化,但框架是不变的,主要有:编译预处理、主函数()、函数n()等,主函数的位置不一定在最前面,可以在程序的中部或后面,主函数的名字固定为main。 2.C语言源程序的书写规则: (1)C源程序是由一个主函数和若干个其它函数组成的。 (2)函数名后必须有小括号,函数体放在大括号内。 (3)C程序必须用小写字母书写。 (4)每句的末尾加分号。 (5)可以一行多句。 (6)可以一句多行。 (7)可以在程序的任何位置加注释。 3.语句种类 语句是程序的基本成分,程序的执行就是通过一条条语句的执行而得以实现的,根据表现形式及功能的不同,C语言的基本语句可以分为五大类。 (1)流程控制语句 流程控制语句的功能是控制程序的走向,程序的流程有三种基本结构:顺序结构、分支结构和循环结构,任何复杂的程序都可以由这三种基本结构复合而成。其中后两种结构要用特定的流程控制语句实现。 (2)表达式语句 表达式语句的形式是:表达式;,即表达式后跟一分号“;”,分号是语句结束符,是一个语句必不可少的成分。表达式和表达式语句的区别在于表达式代表的是一个数值,而表达式语句则代表一种动作。最常见的表达式语句是赋值语句。 (3)函数调用语句 函数调用语句实际上也是一种表达式语句,形式为:在一次函数调用的小括号后面加上一个分号。 (4)空语句 空语句的形式就是一个分号,它不代表任何动作,常常作为一个意义转折点使用。 (5)复合语句 复合语句从形式上看是多个语句的组合,但在语法意义上它只相当于一个语句,在任何单一语句存在的地方都可以是复合语句。注意复合语句中最后一个语句末尾的分号不能少。复合语句右大括号后面没有分号。 4.运算符 用来表示数据各种操作的符号称为运算符。运算符实际上代表了一种类型数据的运算规则。不同的运算符具有不同的运算规则,其操作的数据类型必须符合该运算符的要求,运算结果的数据类型也是固定的。 根据参加操作的数据个数多少,可以将C语言的运算符分为单目运算符,双目运算符和三目运算符(三目运算符只有条件运算符一个)。 根据运算对象和运算结果的数据类型可分为算术运算符、关系运算符、逻辑运算符等。 5.表达式 表达式是由常量、变量、函数,通过运算符连接起来而形成的一个算式。一个常量,一个变量或一个函数都可以看成是一个表达式。 表达式的种类有: 算术表达式、关系表达式、逻辑表达式、赋值表达式、字位表达式、强制类型转换表达式、逗号

(完整版)C语言程序设计教程第五章练习题题目

单选题 1、关于数组的定义与初始化,下列哪一项是错误的() A.int arr[5] = {1,2,3,4,5}; B.int arr[] = {1,2,3,4,5}; C.int arr[5] = {1,2,3}; D.int arr[5] = {1,2,3,4,5,6}; 2、在定义数组int arr[10]后,下列选项中对arr的引用正确的是() A.arr[10] B.arr[6.3] C.arr(6) D.arr[0] 3、在C语言中,引用数组元素时,其数组下标的数据类型允许是() A.整型常量 B.整型表达式 C.整型常量或整型表达式 D.任何类型的表达式 4、若int arr[5] = {1,2,3}; 则arr[2]的值为() A.1 B.2 C.3 D.null 5、在执行int arr[][3] = {1,2,3,4,5,6}:语句后,arr[1][0]的值为() A.4 B.1 C.2 D.5 6、关于二维数组,下列选项能正确定义并赋初值的是() A.int n = 5,b[n][n]; B.int a[1][2] = {{1},{3}}; C.int c[2][] = {{1,2},{3,4}}; D.int a[3][2] = {{1,2},{3,4}}; 7、阅读下列程序段: char s[18] = "a book!"; printf("%.4s\n", s); 其输出结果为() A.a book! B.a book C.a bo D.a 8、阅读下列程序: int a[4][4] = { { 1, 3, 5, }, { 2, 4, 6 }, { 3, 5, 7 } }; printf("%d%d%d%d\n", a[0][0], a[1][1], a[2][2], a[3][3]);

《C语言程序设计》第7章 数组

第7章数组 第1次课:2学时 一、教学内容 1、一维数组的定义和引用 2、二维数组的定义和引用 二、教学目标 1.了解一维数组、二维数组的基本概念; 2.掌握数组的定义与引用; 3.掌握数组元素的引用 三、教学重点及难点 重点:数组的定义和引用 难点:数组的定义和引用 四、教学方法 多媒体教学,案例驱动,实例演示,提问。 五、教学过程设计 在程序设计中,为了处理方便,把具有相同类型的若干变量按有序的形式组织起来。这些按序排列的同类数据元素的集合称为数组。在C语言中,数组属于构造数据类型。一个数组可以分解为多个数组元素,这些数组元素可以是基本数据类型或是构造类型。因此按数组元素的类型不同,数组又可分为数值数组、字符数组、指针数组、结构数组等各种类别。本章介绍数值数组和字符数组,其余的在以后各章陆续介绍。 7.1 一维数组的定义和引用 7.1.1 一维数组的定义方式 在C语言中使用数组必须先进行定义。 一维数组的定义方式为:类型说明符数组名[常量表达式]; 其中:类型说明符是任一种基本数据类型或构造数据类型;数组名是用户定义的数组标识符;方括号中的常量表达式表示数据元素的个数,也称为数组的长度。 对于数组类型说明应注意以下几点: (1) 数组的类型实际上是指数组元素的取值类型。对于同一个数组,其所有元素的数据类型都是相同的。 (2) 数组名的书写规则应符合标识符的书写规定。 (3) 数组名不能与其它变量名相同。 (4) 方括号中常量表达式表示数组元素的个数,如a[5]表示数组a 有5 个元素。但是其下标从0 开始计算。因此5个元素分别为a[0],a[1],a[2],a[3],a[4]。 (5) 不能在方括号中用变量来表示元素的个数,但是可以是符号常数或常量表达式。

C语言程序设计第三版谭浩强课后习题答案完整版

C语言程序设计第三版谭浩强 课后习题答案完整版 第一章 1.5请参照本章例题,编写一个C程序,输出以下信息:************************** V ery Good! ************************** 解: mian() {printf(“**************************”); printf(“\n”); printf(“V ery Good!\n”); printf(“\n”); printf(“**************************”); } 1.6 编写一个程序,输入a、b、c三个值,输出其中最大值。解: mian() {int a,b,c,max; printf(“请输入三个数a,b,c:\n”); scanf(“%d,%d,%d”,&a,&b,&c); max=a; if(max main() { char c1=?C?,c2=?h?,c3=?i?,c4=?n?,c5=?a?; c1+=4; c2+=4; c3+=4; c4+=4; c5+=4; printf("密码是%c%c%c%c%c\n",c1,c2,c3,c4,c5); } 运行结果: 密码是Glmre 3.9求下面算术表达式的值。 (1)x+a%3*(int)(x+y)%2/4 设x=2.5,a=7,y=4.7 (2)(float)(a+b)/2+(int)x%(int)y 设a=2,b=3,x=3.5,y=2.5 (1)2.5 (2)3.5 3.10写出程序运行的结果。 main() {int i,j,m,n; i=8; j=10; m=++i; n=j++; printf(“%d,%d,%d,%d”,i,j,m,n); } 解: 9,11,9,10 3.12 写出下面表达式运算后a的值,设原来a=12。设a和n都已定义为整型变量。 (1)a+=a (2)a-=2 (3)a*=2+3 (4)a/=a+a (5)a%=(n%=2),n的值等于5 (6)a+=a-=a*=a 解: (1) 24 (2) 10 (3) 60 (4) 0 (5) 0 (6) 0 第四章 4.4若a=3,b=4,c=5,x=1.2,y=2.4,z=-3.6,u=51274,n=128765,c1=’a’,c2=’b’。想得到以下输出格式和结果,请写出程序(包括定义变量类型和设计输出)。 a=_3_ _b=_4_ _c=_5 x=1.200000,y=2.400000,z=-3.600000 x+y=_3.600_ _y+z=-1.20_ _z+x=-2.40 c1=ˊaˊ_or_97(ASCII)

相关文档