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

编程题目。急。。。

发布时间:2025-05-23 04:57:06    发布人:远客网络

编程题目。急。。。

一、编程题目。急。。。

可以通过循环的办法穷举搜索,但也可以分析一下:

比如只有蜻蜓和蝉有翅膀,先搜索满足翅膀数的蜻蜓数和蝉数,在通过腿确定蜘蛛数。

至少从翅膀数可以知道蝉的数目一定是偶数。等等。

注意到,假设蝉为0只,且蜻蜓数目为N,则N=10,腿为:10×6+(18-10)*8=60+64=124>118,所以蜘蛛的数目必然小于8只。蝉不为0。设蝉为2,则蜻蜓为N=9,于是9*6+12+(18-9-2)*8=122>118

可以看出少一只蜘蛛,需要增加两只蝉,以匹配翅膀数目,但相应的腿每次降低两个,于是,这个编程可以简化为递减的次数反推各虫子的数目,于是,可以再减两次,即蝉增加到6只,蜻蜓降低分别1,至7,于是结果为:

蜻蜓、蝉、蜘蛛:7、6、5所以,这个编程可以如此简化实现上述规律,而不是穷举法。

二、基础编程题

//-------------------------------第一题

#include"e:\myc\zylib\zylib.h"

STRING GetString(STRING prompt);

double GetReal(STRING prompt);

bookname=GetString("请输入字符串:");

bookprice=GetReal("请输入实数:");

printf("字符串为:%s\n",bookname);

printf("实数为:%.2f\n",bookprice);

STRING GetString(STRING prompt)

name=GetStringFromKeyboard();

//-------------------------------------第二题

#include"e:\myc\zylib\zylib.h"

if(IsPrime(n))printf("%d是素数\n",n);

else printf("%d不是素数\n",n);

else printf("数据非法\n");

//--------------------------------第三题

printf("最大公约数为:%d\n",max);

//--------------------------------第四题

#include"e:\myc\zylib\zylib.h"

typedef enum{sun,mon,tue,thi,wen,fri,sat}WEEKDAY;//定义枚举类型

int GetInteger(STRING prompt);//输入一下整数

int Count(int year,int month);//计算某年某月之前到2007年1月1日的天数

BOOL IsLeapYear(int n);//判断某年是否是闰年

int month_day(int year,int month);//计算某个月的天数

void print(int year,int month,int total);//打印某年某月的日历

void print1(WEEKDAY weekday);//打印某月的第1天

year=GetInteger("please input year:");

PrintErrorMessage(FALSE,"年份小于2007,错误\n");

month=GetInteger("please input month:");

return n%4==0&&n%100!=0||n%400==0;

int month_day(int year,int month)

case 2:day=28+IsLeapYear(year);break;

void print(int year,int month,int total)

printf("%d-%d canlendar\n",year,month);

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

printf(" sun mon tue thi wen fri sat\n");

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

weekday=(WEEKDAY)((total+i+first-1)%7);

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

if(weekday==0)printf("%4d",1);

else if(weekday==1)printf("%8d",1);

else if(weekday==2)printf("%12d",1);

else if(weekday==3)printf("%16d",1);

else if(weekday==4)printf("%20d",1);

else if(weekday==5)printf("%24d",1);

else if(weekday==6)printf("%28d\n",1);

//---------------------------------------

上面的一些文件路径你自己改了,唉,其实我自己给你写的那些算法更好,。

三、下半年计算机二级c语言基础试题

任何设计活动都是在各种约束条件和相互矛盾的需求之间寻求一种平衡,程序设计也不例外。下面是我收集的关于计算机二级c语言基础试题,希望大家认真阅读!

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

A)数组acX和数组acY等价 B)数组acX和数组acY的长度相同

C)数组acX的长度大于数组acY的长度 D)数组acX的长度小于数组acY的长度

printf("%d", sizeof(acHello));

example(acHello);//数组名称作参数,传的是地址,一个地址占四个字节

for(pcPtr= acArr; pcPtr< acArr+ 5; pcPtr++)

4.在中断中,不能同步获取信号量,但是可以释放信号量。

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

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

D)在一个函数内的复合语句中定义的变量在本函数范围内有效(复合语句指函数中的成对括号构成的代码)

unsigned long pulArray[]={6, 7, 8, 9, 10};

printf("%d,%d/n",*pulPtr,*(pulPtr+ 2));

7.定义结构体时有下面几种说法,请指出正确的(多选):______

A、结构体中的每个部分,最好进行四字节对齐;

B、结构体的总长度最好是四字节对齐;

C、结构中成员的存放不用考虑字节对齐情况;

printf("%d/n", strlen(acNew));

9.switch(c)中的c的数据类型可以是char、long、float、unsigned、bool.()

10.网络上传输的字节序默认是大字节的,如果主机是小字节序,在网络通信时则须进行字节序转换;如果主机是

大字节序,为了程序的一致性及可移植性,最好也在程序中加上字节序转换的操作(空操作)。

1、 C语言函数返回类型的默认定义类型是

2、函数的实参传递到形参有两种方式:和

3、在一个函数内部调用另一个函数的调用方式称为。在一个函数内部直接或间接调用该函数成为函数的调用方式

5、凡在函数中未指定存储类别的局部变量,其默认的存储类别为

printf(“%d,%d,%d,%d”,x3,x4,x1,x2);

1、编写一个函数,判断任一整数是否为素数,用main()函数调用并测试之。

3、有一个一维数组,内放10个学生成绩,写一个函数,求出平均分,最高分和最低分

B.所有数据结构必须有终端结点(即叶子结点)

C.只有一个根结点,且只有一个叶子结点的数据结构一定是线性结构

D.没有根结点或没有叶子结点的数据结构一定是非线性结构

【解析】D项正确,线性结构的特点是:

①集合中必存在“第一个元素"且惟一;

②集合中必存在“最后一个元素”且惟一;

③除最后一个元素外,其他数据元素均有惟一的“后继;

④除第一个元素外,其他数据元素均有惟一的“前驱”。所以没有根结点或没有叶子结点的数据结构一定是非线性结构。AB两项错误,不是所有数据结构都必须有根结点和叶子结点;C项错误,数据结构中若有中间结点不满足只有一个前件或者后件的条件,就不是线性结构。答案选择D选项。

A. C语言中的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令

B. C程序经过编译、链接步骤之后才能形成一个真正可执行的二进制机器指令文件

C.用C语言编写的程序称为源程序,它以ASCII代码形式存放在一个文本文件中

D. C语言源程序经编译后生成后缀为.obj的目标程序

【解析】A项错误,注释语句不会被翻译成二进制的'机器指令。C源程序经过C编译程序编译之后生成后缀为.obj的二进制文件(称为目标文件),然后由“链接程序”(Link)的软件把.obj文件与各种库函数连接起来生成一个后缀为.exe的可执行文件。答案选择A选项。

3. C语言主要是借助以下()功能来实现程序模块化的。

【解析】C程序的模块化主要通过函数来实现。C语言允许对函数单独进行编译,从而可以实现模块化。答案选择A选项。

已知字符a的ASCII码十进制值为97,则执行上述程序段后输出的结果是()。

A.因变量类型与格式描述符的类型不匹配输出无定值

B.输出项与格式描述符个数不符,输出为零值或不定值

【解析】字符变量的值是该字符的ASCII码值,可以参与整型变量所允许的任何运算。"ch='a",%c表示以字符格式输出ch的值,所以输出为a;%d表示以十进制代码的形式输出ch的值,为97;k没有对应的输出格式,不输出。在第二个语句中,首先输出"k=",然后以十进制代码输出k的值,为12。答案选择D选项。

D.有序线性表既可以采用顺序存储结构,也可以采用链式存储结构

【解析】有序的线性表既可采用顺序存储结构,也可以采用链式存储结构。A项错误,栈是“先进后出"的线性表B项错误,队列是“先进先出"的线性表;C项错误,循环队列是线性结构的,有序的线性表既可采用顺序存储结构,也可采用链式存储结构。

6.某二叉树的中序序列为DCBAEFG,后序序列为DCBGFEA,则该二叉树的深度(根结点在第1层)为()。

【解析】二叉树的后序序列为DCBGFEA,则A为根结点。中序序列为DCBAEFG,则DCB为左子树结点,EFG为右子树结点。同理B为C父结点,C为D父结点。根据分析,可画出左子树,同理E为F父结点,F为G父结点。根据分析,可画出右子树,故二叉树深度为4层。答案选择B选项。

7.设有定义:struct{intn;floatx;}s[2],m[2]={{10,2.8},{0,0.0}};,则以下赋值语句中正确的是()。

【解析】定义了结构体类型数组s,长度为2,结构体类型数组m,长度为2,并对数组m进行了初始化。同类型的结构体可以直接用变量名实现赋值,A项正确;数组名为数组首地址,地址常量之间不可以相互赋值,B项错误;数组名为地址常量不是结构体变量,不能引用成员,C项错误;s[2]与m[2]数组越界,D项错误。答案选择A选项。

8.关于C语言标识符,以下叙述错误的是()。

【解析】C语言标识符只能由字母、数字、下划线构成,且只能以字母、下划线开头,故答案选择A选项。

9.以下程序段中的变量已定义为int类型,则

【解析】自增和自减运算符的两种用法:前置运算,运算符放在变量之前,规则是先使变量的值增(或减)1,然后以变化后表达式的值参与其他运算;后置运算,运算符放在变量之后,规则是变量先参与其他运算,然后再使变量的值增(或减)1。执行pAd=sum++,sum++是后置自增,执行完后,pAd=5,sum=6。++pAd和pAd++语句中没有其他运算,即效果相同,pAd分别加1,两句执行完后,pAd7。答案选择D选项。