程序设计基础C离线作业Word格式文档下载.docx

上传人:b****3 文档编号:18025089 上传时间:2022-12-13 格式:DOCX 页数:23 大小:28.36KB
下载 相关 举报
程序设计基础C离线作业Word格式文档下载.docx_第1页
第1页 / 共23页
程序设计基础C离线作业Word格式文档下载.docx_第2页
第2页 / 共23页
程序设计基础C离线作业Word格式文档下载.docx_第3页
第3页 / 共23页
程序设计基础C离线作业Word格式文档下载.docx_第4页
第4页 / 共23页
程序设计基础C离线作业Word格式文档下载.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

程序设计基础C离线作业Word格式文档下载.docx

《程序设计基础C离线作业Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《程序设计基础C离线作业Word格式文档下载.docx(23页珍藏版)》请在冰豆网上搜索。

程序设计基础C离线作业Word格式文档下载.docx

%d&

&

%d=%d\n"

/*调用系统输出函数printf,%d为格式控制符,依次用后面的变量值填充,以整数形式输出*/

c=or(a,b);

%d||%d=%d\n"

[文件]→[新建]→[文件]→[C++SourseFile],输入文件名ex1-2-2.c,源程序代码为:

intand(inta,intb)

{

intc;

c=a&

b;

returnc;

步骤4:

[文件]→[新建]→[文件]→[C++SourseFile],输入文件名ex1-2-3.c,源程序代码为:

intor(inta,intb)

c=a||b;

步骤5:

点击编译图标

,编译程序1-2.c

点击执行图标

,执行程序1-2.c,当程序运行时,键盘输入2040,按回车。

2040

20&

40=1

20||40=1

您可以输入其它的整数,观察程序的执行结果。

第2章 输入输出程序设计

1.用printf输出一个中空的五角星。

2.仿照例子2.2,定义一个字符数组,从键盘输入一字符串,然后输出的程序。

3.从键盘输入十六进制整数,转化为八进制数输出。

4.只定义两个整型数据并赋值,实现两个整型数的互换。

5.从键盘上输入一个整数,分别输出8、16进制数的程序。

6.从键盘上输入一个整数,分别输出它的个位数,十位数,百位数。

7.以下程序输出结果是()。

voidmain()

inti=010,j=10;

printf("

%d,%d\n"

++i,j--);

}

8.运行程序,屏幕提示“您是一个学生吗”,您输入’y’或’n’进行回答,屏幕输出您的选项。

9.从键盘输入一个角度x,求10*sin(x)的值。

第3章 循环程序设计

1.以下for语句的循环次数是多少?

inti,j=3;

for(;

i=j;

i--,j--)printf("

%d"

i);

2.下面的语句显示输出6行6列的整数数组h的主对角线上的所有元素,请补充完整:

for(inti=0;

i<

;

3.写出以下程序运行的结果,此程序实现了什么功能?

{inta[10]={2,4,0,-5,10,6,-8,9,6,7};

inti,count=0;

for(i=0;

10;

i++)

if(a[i]==0)count++;

elsecontinue;

%d\n"

count);

4.写出以下程序的功能。

inta[10]={2,4,0,-5,10,6,-8,9,6,7},tmp,k;

for(k=0;

k<

10/2;

k++)

tmp=a[k];

a[k]=a[10-k-1];

a[10-k-1]=tmp;

5.写出以下程序运行后的输出结果。

inti,j;

6;

{

for(j=0;

j<

i;

j++)

printf("

"

);

for(j=0;

2*(5-i)-1;

*"

\n"

6.请改正下列程序的错误,改正后的程序写在右边的空白处,并上机调试检验。

(1)

voidmain()

inti,s;

i=1;

s=0;

while(i<

=100);

s=s+i;

i++;

printf(“1+2+3+….+99+100=%d\n”,s);

(2)

s=0;

=100)

(3)

inti=1,s;

=100);

7.输入一个基数,例如输入9,输出为:

求1*3*……*9的值。

输出为:

1*3*5*7*9=945

8.输入一个5~10之间的整数n,求1!

+2!

+3!

+…+n!

例如输入5,输出为:

1!

+…+5!

=153

9.在屏幕上输出以下内容

1

12

123

1234

12345

123456

1234567

12345678

123456789

10.求2+4+6+……+98+100的和,用多种for表达式来完成。

11.输入一行字符,统计它有多少个字母?

第4章 分支程序设计

1.输入若干整数给x,使用if语句输出x的绝对值,当输入0时结束。

2.输入一批数,输出比相邻数大的数,当输入0时结束。

3.将输入字符的大写字符转换成小写字符输出,小写字符原样输出。

4.输入一批字符,按回车时结束,统计小写字符、大写字符、数字字符、或其它字符的个数。

5.编写程序,计算分段函数:

6.根据输入的百分制按五分制的成绩输出。

百分制与五分制之间的关系见下表。

百分制

五分制

90~100

5

80~89

4

70~79

3

60~69

2

<

60

1

7、用switch完成:

读入一个实数x,再输入一整数,若输入是1,则计算sin(x),若输入2,则计算cos(x),若输入3,则计算tan(x),若输入其他值,则显示错误信息。

8、用switch完成:

输入星期1到星期5,输出它们对应的颜色

星期1:

blue

星期2:

red

星期3:

white

星期4:

yellow

星期5:

green

9、用switch完成:

从键盘输入A、B、C、D四个等级中的一个,转化输出

等级

输出

A

优秀

B

良好

C

中等

D

及格

E

不及格

第5章 数组及其应用

1.从键盘输入12个数,分别为:

900,2,3,58,34,76,87,72,90,20,78,30,找出最大和最小数。

2.采用遍历查找,在数组a[SIZE]={2,3,20,58,72,76,78,87,90,900}中,找出偶数。

3.采用折半查找,在数组a[SIZE]={2,3,20,58,72,76,78,87,90,900}中,找到87,然后进行删除。

第6章 函数及其应用

练习与实践

一、阅读程序,写出程序运行的结果。

1.写出以下程序的执行结果。

floataver(inta[])

intk,sum=0;

floatave;

for(k=0;

k++)

sum+=*(a+k);

ave=(float)sum/10;

return(ave);

staticb[]={78,89,98,76,78,45,88,81,92,85};

ave=aver(b);

ave=%f\n"

ave);

提示:

数组b的首地址传递给形参a,*(a+k)就是数组元素b[k].

2.阅读程序,写出程序的执行结果。

voidabc(charstr[])

{inta,b;

for(a=b=0;

str[a]!

='

\0'

;

a++)

if(str[a]!

='

c’)

str[b++]=str[a];

str[b]='

charstr[]="

abcdef"

abc(str);

str[]=%s"

str);

return0;

数组str的首地址传递给形参str,str[a]就是实参中的数组元素str[a],当数组元素不为’c’时进行复制。

3.写出以下程序的执行结果。

intsort(intb[],intn,intx)

intk;

for(k=n-1;

k>

=0;

k--)

if(b[k]<

x)

b[k+1]=b[k];

else

break;

b[k+1]=x;

inti,j;

staticinta[5]={8,5,4,1,6};

intb[8];

b[0]=a[0];

for(i=1;

5;

sort(b,i,a[i]);

=i;

j++)

%d"

b[i]);

循环体中

如果b[k]<

x成立,执行语句b[k+1]=b[k];

表示数组元素b向后移,不满足时插入x,即从大到小排序。

4.写出以下程序的执行结果。

intfun(intx)

{intp;

if(x==0||x==1)

return3;

else

p=x-fun(x-2);

returnp;

\n%d"

fun(9));

fun(9)=9-fun(7),...,fun

(1)=3

5.写出以下程序的执行结果,并说明其作用是什么?

intf(intn)

if(n>

=10)

f(n/10);

n%8);

return0;

f(1234);

在函数f中,程序运行借助了堆栈,依次入栈的数据分别为1234、123、12,最后n=1,n对8取余输出,然后数据依次出栈对8取余输出。

 

二、程序设计

1.编写一个函数,计算x的n次的平方。

for(y=1,i=0;

n;

y=y*x;

2.编写一个函数,计算对角线上元素之和。

for(s=0,i=0;

if(i==j)

s=s+a[i][j];

3.编写一个函数intinvert(charstr[]),将一个字符串的内容颠倒过来。

先求字符串str的长度n,for(i=0;

n/2;

i++){a[i]与a[n-1-i]交换}

4.编写函数,删除字符串中,从指定位置m开始的n个字符。

删除成功,函数返回被删除字符串;

否则返回空的值。

for(k=m,i=0;

str[i];

i++)

str[m+i]=str[m+n+i];

str[m+i]=’\0’;

5.编写一个程序,从键盘输入的字符串,删去非数字字符,转换成整型数输出。

for(s=0,i=0,j=0;

str[i];

if(str[i]>

=’0’&

str[i]<

=’9’)

s=s*10+str[i]-‘0’;

6.用递归的方法编写一个函数sum(intn),求1至n的累加和。

f(n)=n+f(n-1)

第7章 变量存储类型与多文件系统

intx;

voidfun()

x++);

intx=1;

externintx;

%d,"

++x);

fun();

在函数fun中及语句块

中使用的x是外部变量,在语句块:

if(x==1)

{intx=2;

中使用的是刚刚定义x=2的变量。

2.写出以下程序的执行结果。

intkk()

{intx=4;

staticinty;

y=5;

x*=2;

y*=2;

return(x+y);

{intj,s=0;

for(j=0;

j<

2;

j++)

s=kk();

printf("

s=%d\n"

s);

虽然两次调用函数kk(),但变量定义语句staticinty;

只执行一次,而变量赋值语句每次都要执行。

intt()

intx=0;

staticinty=4;

y+=++x;

returnx+y;

%d\n"

(t(),t()));

语句printf("

(t(),t()));

中(t(),t())属于“,”号表达式,即两次调用函数t(),在函数t()中,y为静态内部变量,因而语句staticinty=4;

只执行一次。

第8章 文件

1.下述程序从终端读入文本(用$作为文本结束标志)复制到一个名为out.dat的新文件中,请补全程序。

#include<

intmain()

FILE*fp;

charcx;

if((fp=fopen(

(1)))==NULL)

while((cx=getchar())!

$'

fputc(cx,fp);

(2);

return1;

第1个空格是打开文件读,第2个空格是关闭文件。

2.下面的程序用来统计文件中字符的个数,请补全程序。

{FILE*fp;

longnum=0;

if((fp=fopen("

fname.dat"

"

r"

))==NULL)

Can'

topenfile!

exit(0);

while(

(1))

{

fgetc(fp);

num++;

num=%d\n"

num);

fclose(fp);

return1;

第1个空格表示文件没有结束,循环将持续。

3.以下程序由终端键盘输入一个文件名,然后把从终端键盘输入的字符,依次存放到该文件中,用#作为结束输入的标志,请补全程序。

FILE*fp;

charch,fname[10];

Inputthenameoffile\n"

gets(fname);

if((fp=)==NULL)

Cannotopen\n"

exit(0);

Enterdata\n"

while((ch=getchar())!

#'

fputc(,fp);

文件名是从键盘读入的,因而文件名是用变量表示的,文件是打开写。

4.下述程序从一个二进制文件中读入结构体数据,并把读出的数据显示在屏幕上。

请补全程序。

structrec

{inta;

floatb;

};

voidrecout(FILE*fp)

{structrecr;

do

{fread(

(1),sizeof(structrec),

(2),fp);

if((3))

(4);

%d,%f"

r.a,r.b);

}while

(1);

fp=fopen("

file.dat"

rb"

recout(fp);

fclose(fp);

在fread语句中,

(1)中为存放所读出结构数据的内存地址,当然此数据是赋给变量r,

(2)中是读出结构体变量数据的个数,(3)是与循环中止有关的判断,(4)为中止循环。

5.从键盘输入一个字符串,并逐个将字符串的每个字符传送到磁盘文件"

l1.txt"

中,字符串的结束标记为"

#"

6.有一文本文件l1.txt,请编写一个程序将文件中的英文字母及数字字符显示在屏幕上。

7.把文本文件l1.txt中的数字字符复制到文本文件l2.txt中。

8.x从0到360度的sin(x)值写入到文件l6.txt中,并将大于0的值显示在屏幕上。

第9章指针与数组

程序阅读与填空题

1.分析下列程序,输出结果是()。

int*p1,x=10;

float*p2,y=2.5;

p1=&

x;

p2=&

y;

%d,%f\n"

++(*p1),(*p2)++);

++都作用在内容上,前一项是先++再输出,后一项是先输出再++。

2.下列程序输出结果是()。

inta[]={1,2,3,4,5,6},*p=a;

*p,*(p+3));

语句*(p+3)+=2;

指p+3的地址上的内容加2,然后输出p及p+3的地址上内容。

3.下列程序输出结果是()。

inta[]={1,2,3,4,5,6};

intx,y,*p;

p=&

a[0];

x=*(p+2);

y=*(p+4);

*p=%d,x=%d,y=%d\n"

*p,x,y);

p+2是指&

a[2]。

4.下列程序输出结果是()。

inta[]={10,20,30,40,50,60};

int*p;

p=a;

*%d,\n"

*p);

*(++p));

*++p);

*(p--));

p+=3;

*%d,%d\n"

*p,*(a+3));

*(++p)、*++p都表示指针p向大地址方向移动,然后再取内容,要注意的是后一语句的输出受前一语句的影响。

5.下列程序输出的结果是()。

voiddel(char*str)

inta,b;

if(*(str+a)!

*(str+b++)=*(str+a);

del(str);

在函数del中str+a地址上的内容不为字符’c’时不复制,实际上是指删除指针str所指的字符串中的字符’c’。

6.以下程序输出的结果是()。

string.h>

voidf

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

当前位置:首页 > PPT模板 > 其它模板

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

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