您当前的位置:首页 > 互联网教程

C语言编程作业,求解答

发布时间:2025-05-13 06:07:21    发布人:远客网络

C语言编程作业,求解答

一、C语言编程作业,求解答

1、作业1:result(int)= c(char)* i(int)+ f(float)/ d(double)-(f+ i);

2、第一步:f+i,一个float和int相加,按精度高的float进行计算,结果为float

3、result= char* int+ float/double- float;

4、第二步:char* int,他们都是整数相加为int

5、result=int+ float/double- float;

6、第三步:float/double,按精度高的double进行计算结果为double

7、第四步:int+ double结果为double

8、第五步:double- float结果为double,result为整形,赋值给整形会强制把double转化成int,保留整数。

9、原因,swap的形参是值传递,实参传值给形参,子函数无法改变实参的值;要改变得传址。

10、顺序查找法适应性好,可以适用在无序和有序数组查找;

11、折半查找法只适用于有序数组,无序查找会失败;但是在有序数组查找时查找效率高于顺序查找。

二、c语言作业

a.在程序执行过程中,当数组元素下标超出定义的下标范围时,系统将给出“下标”越界的错误提示

b.可以通过赋初值的方式确定数组元素个数

c.数组名代表数组所占存储区的首地址,其值不可变

d.对于double类型数组,不可直接用数组名对数组进行整体输入或输出

A.定义函数时,形参的类型说明可以放在函数体内

B.如果形参与实参的类型不一致,则以实参类型为准

D.如果函数值类型与return后的返回值类型不一致,则以函数值类型为准

给定下列程序,则运行结果为(B)

void fun(int x, int y, int* z)

printf(“%d,%d,%d\n”, a, b, c);

C语句int*func();中,func表示的是(A)

C语言规定,若未对函数返回类型加以说明,则函数的隐含类型为(B)

已有定义char a[]="xyz", b[]={'x','y','z'}以下叙述正确的是 c

a.数组a的存储空间长度小于数组b的存储空间长度

c.数组a的存储空间长度大于数组b的存储空间长度

A.函数的类型可以是整型、实型、字符型,但不能是指针类型

B.在没有声明函数返回值类型的情况下,默认函数返回值类型为int型

C. C语言规定,不能在一个函数的内部再定义函数

D.函数可以没有形参,但函数名后的括号不能省略

若已定义的函数有返回值,则以下关于该函数调用的叙述错误的是(A)

A.函数调用可以作为左值而被赋值

B.函数调用可以作为独立语句存在

C.函数调用可以作为一个函数的实参

{ char a[]={'a','b','c','d','e','f','g','h','\0'};

阅读下列程序段,其执行结果为(C)

printf("d=%lf\n", fun(a, b, c));

double fun(int a, int b, int c)

以下不能正确定义二维数组的选项是(A)

A. int a[2][]={{1, 2},{3, 4}};

在C语言中,对变量的访问方式是(C)

C语句: int(* pa)[5];中,pa表示的是一个(A)

A.指向包含5个整型元素的一维数组的指针

B.在一个函数内定义的变量只在本函数范围内有效

C.在不同的函数中可以使用相同名字的变量

D.在一个函数的复合语句中定义的变量只在本函数范围内有效

三、求-c语言程序设计作业。请大家帮帮忙-_-~

#define ENTER 0x1c0d/*回车键*/

#define Backspace 0xe08/*擦除键*/

#define ALT_B 12288/*组合键ALT_B*/

#define ALT_M 12800/*组合键ALT_M*/

#define ALT_H 8960/*组合键ALT_H*/

int textx,texty;/*光标坐标,x行,y列*/

struct menustruct/*菜单用的结构体*/

}ml[3];/*使用了3个,可根据需要增删*/

typedef struct BookList/*书的结构体*/

int yes;/*判断书是否存在或者已经借出,1存在,0借出*/

typedef struct MemberList/*会员的结构体*/

char save[4096];/*保存文本区域空间*/

void Selectitem();/*定义菜单*/

void DrawSelectitem();/*显示主菜单*/

void BlackText(int x,int y,char*z);/*选中菜单*/

void RedText(int x,int y,char*z);/*正常菜单*/

void DrawMl(int n);/*显示下拉菜单*/

void MoveMl(int n,int x);/*菜单选项的控制*/

void Enter(int m,int n);/*菜单选项的具体功能*/

void BookConsult();/*图书查询*/

void BookDel();/*删除图书资料*/

void MemberConsult();/*查询会员*/

void MemberBook();/*查询会员借书信息*/

void ClrScr();/*自定义清屏函数*/

void DrawFrame(int left,int up,int right,int down,int textcolor,int backgroundcolor);/*画边框*/

system("cls");/*调用系统的清屏命令*/

textbackground(BLUE);/*将背景设置为蓝色*/

printf("%c",218);/*画左上角*/

printf("%c",196);/*画水平直线*/

printf("%c",191);/*画右上角*/

printf("%c",179);/*画垂直线*/

printf("%c",192);/*画左下角*/

printf("%c",217);/*画右下角*/

cprintf("%c",219);/*用符号实现画主菜单的灰色背景区*/

Selectitem();/*调用选项函数*/

gettext(2,3,78,23,c);/*保存当前文本区域*/

strcpy(ml[0].name,"Book");/*下面的具体选项补空格是为了各菜单黑色背景相同*/

strcpy(ml[0].str[0],"Add");/*添加图书*/

strcpy(ml[0].str[1],"Consult");/*查询图书*/

strcpy(ml[0].str[2],"Del");/*删除图书资料*/

strcpy(ml[0].str[3],"Borrow");/*借书*/

strcpy(ml[0].str[4],"Return");/*还书*/

strcpy(ml[0].str[5],"Exit");/*退出系统*/

strcpy(ml[1].str[0],"Add");/*添加新会员*/

strcpy(ml[1].str[1],"Consult");/*查询会员资料*/

strcpy(ml[1].str[2],"Del");/*删除会员资料*/

strcpy(ml[1].str[3],"Member&book");

strcpy(ml[2].name,"Help");/*系统帮助*/

strcpy(ml[2].str[0],"This System");

RedText(i,1,ml[i].name);/*显示主菜单名,且首字母为红色*/

void RedText(int x,int y,char*z)

textbackground(7);/*设置背景颜色为浅灰色*/

textcolor(RED);/*第一个字母显示红色*/

textcolor(BLACK);/*设置黑色*/

cprintf("%c",z[j]);/*输出菜单名*/

void BlackText(int x,int y,char*z)

textbackground(0);/*设置背景颜色为黑色*/

textcolor(15);/*设置文本颜色为白色*/

gotoxy(3+20*x,y);/*定位坐标*/

cputs(z);/*输出菜单名字符串*/

case ESC: DrawMl(0);break;/*显示下拉菜单1*/

case ALT_M: DrawMl(1);break;/*显示下拉菜单2*/

case ALT_H: DrawMl(2);/*显示下拉菜单3*/

case UP:/*上光标键的操作控制*/

case DOWN:/*下光标键的操作控制*/

case LEFT:/*左光标键的操作控制*/

case Backspace:/*擦除键的设置*/

texty--;/*擦除键的细节问题,先擦去东西,然后光标还要往后退一格*/

case RIGHT:/*右光标键的操作控制*/

gotoxy(texty,textx);/*空格的细节操作*/

case ENTER:/*回车的控制操作*/

if(texty==79&&textx==23)/*到达最后就不再输出*/

if(texty==79&&textx!=23)/*到行的最后*/

gotoxy(texty,textx);/*输出结果*/

if(texty==79)/*如果texty==79就不执行*/

else/*如果没到行尾就继续执行,使光标向前移动一位*/

void DrawFrame(int l,int u,int r,int d,int tcolor,int bcolor)

textbackground(bcolor);/*背景颜色*/

textcolor(bcolor);/*文本颜色*/

for(i=l;i<=r;i++)/*输出背景区域*/

printf("%c",219);/*输出背景字符*/

textcolor(tcolor);/*边框颜色*/

for(i=u+1;i<d;i++)/*在背景区域内输出边框线*/

/* gettext(l+1,u+1,r-1,d-1,save1);*//*保存边框内区域*/

gettext(1,1,80,25,save);/*保存被掩盖的地方*/

BlackText(n,1,ml[n].name);/*反选显示主菜单*/

DrawFrame(3+20*n-1,2,3+20*n+19,3+ml[n].n,0,7);/*下拉菜单的边框*/

for(i=3;i<3+ml[n].n;i++)/*输出所选菜单各选项*/

BlackText(n,i,ml[n].str[i-3]);/*默认选中第一项*/

RedText(n,i,ml[n].str[i-3]);/*其余各项首字符红色显示*/

MoveMl(n,3);/*菜单选项的控制*/

/*菜单选项的控制,n决定水平项,x决定下拉的选项*/

puttext(1,1,80,25,save);/*恢复打开菜单前的样子*/

puttext(1,1,80,25,save);/*恢复打开菜单前的样子*/

if(n==0)/*往左移动越界的话移到最后一个选项*/

case RIGHT:/*移动右边的选项*/

puttext(1,1,80,25,save);/*恢复打开菜单前的样子*/

if(n==2)/*往右移动越界的话移到第一个选项*/

RedText(n,x,ml[n].str[x-3]);/*输出红色字体*/

if(x==3)/*移到最上面再按上键,就移到最下面*/

x--;/*移动到新的要显示的内容*/

BlackText(n,x,ml[n].str[x-3]);/*输出黑色字体*/

case DOWN:/*具体选项往下移动*/

if(x==(3+ml[n].n-1))/*移动到最底下再按下键就移到最上面*/

x++;/*移动到新的要显示的内容*/

BlackText(n,x,ml[n].str[x-3]);

puttext(1,1,80,25,save);/*恢复打开菜单前的样子*/

Enter(n,x-3);/*菜单选项的具体功能*/

case 0:switch(n)/*选择了图书菜单选项*/

case 0:BookAdd();break;/*添加图书*/

case 1:BookConsult();break;/*图书查询*/

case 2:BookDel();break;/*删除一本图书资料*/

case 3:BookBorrow();break;/*借书*/

case 4:BookReturn();break;/*还书*/

case 1: switch(n)/*选择了会员菜单选项*/

case 0: MemberAdd();break;/*添加会员*/

case 1: MemberConsult();break;/*会员查询*/

case 2:MemberDel();break;/*删除一个会员资料*/

case 3:MemberBook();/*查询某个会员所借图书情况*/

case 2:switch(n)/*选择了帮助菜单选项*/