大一c语言必背编程题,c语言试卷及答案大一
大家好,今天小编来为大家解答以下的问题,关于大一c语言必背编程题,c语言试卷及答案大一这个很多人还不知道,现在让我们一起来看看吧!
大一期末考试复习题,求教C语言编程高手
1、10逗号(,)分隔开的连续表达式,取最后一个表达式的值为整个表达式的值。
2、A吧。这个不太确定。c语言中不允许出现A=B=C形式的赋值。C中没有**这个东西,D中,强制转换为y=(float)i;
3、B所谓保留字,一般是指C语言留作关键字了,比如int,我们不能定义一个变量名叫int的。
4、8参照题目一,依次计算各个表达式,取最后一个表达式的值,结果为8。
急求c语言编程题目
早上看到问题需求,中午用休息时间刚好大半代码,发现问题居然已经采纳了。。。
代码完成了。测试过了。直接运行。
滚轮实现动态,三角型指针沿着滚盘数字转动,随机停在一个数字上,如果和之前下注的数值一致就是猜中,反之没猜中
你提出的所有功能都实现了,太多了,我截图列举几个说明一下,其它你自己看吧。
是可以猜中!!可以猜中!!,我第一次2轮就中,忘记截图了。1/36的概率能猜中,有耐心慢慢试,记得充值!
后台还有很多功能,但必须用管理员账户才能进入:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<malloc.h>
#include<conio.h>
#include<time.h>
#definemaxMShow10//最大下注金额显示字符数,修改该值需要同步修改showDisc函数的格式参数!
typedefstructuser
{
charuName[21];
charpsw[21];
intmoney;//余额
intpay;//历史消费
intwin;//历史赢钱
inttype;//用户类型->0:管理员;1:普通玩家
structuser*next;
}USER;
typedefstructdisc//圆盘数字
{
charflag;//数字前标识
intnum;//圆盘数字
intmoney;//对应下注金额
charmStr[maxMShow+1];//下注金额字符串形式,为了排面整齐,最多显示10个字节
structdisc*next;
}DISC;
voidmeError(void*p);//内存申请失败
DISC*init();//初始化圆盘,生成链表头指针
voidshowDisc(DISC*discHead,USER*logUser);//显示圆盘
DISC*bets(DISC*discHead,USER*user);//下注,成功返回下注节点,失败返回NULL。参数:user:下注人ID;
intregUser(USER**userHead,USER**userTail,char*uName,char*psw,intmoney,inttype);//注册用户,成功返回1,失败返回0。参数:uName:用户名。psw:密码。money:开户金额。type:用户类型0管理员1普通用户
USER*login(USER*userHead,char*uName,char*psw);//登录。登录成功返回用户节点,失败返回NULL
intrecharge(USER*logUser);//充值,成功返回1,失败返回0
voidshowMenu1(DISC*discHead,USER**userHead,USER**userTail);//显示一级菜单
voidshowMenu2(DISC*discHead,USER*logUser,USER*userHead);//显示二级菜单
voidshowMenu3(DISC*discHead,USER*logUser,USER*userHead);//显示三级菜单
introll(DISC*discHead,USER*logUser);//滚动转盘,猜中增加奖金,猜中返回1,没猜中返回0。参数:num=猜的数字,money=下的注
voidreDisc(DISC*discHead);//重置转盘,每次滚动后调用
voidshowUser(USER*userHead,char*uName);//查看指定玩家账户,参数uName传NULL,查看所有玩家账户
voidshowProfit(USER*userHead);//统计赌场盈利状况;
intmain()
{
DISC*discHead=NULL;
USER*userHead=NULL,*userTail=NULL;
srand(time(NULL));
discHead=init();
showMenu1(discHead,&userHead,&userTail);
return0;
}
voidshowMenu1(DISC*discHead,USER**userHead,USER**userTail)//显示一级菜单
{
USER*logUser=NULL;
charuName[21]={0},psw[21]={0};
intn,money=0,type;
while(1)
{
n=0;
memset(uName,0,21);
memset(psw,0,21);
money=0;
type=-1;
system("cls");
printf("1、用户登录
2、用户注册
");
scanf("%d",&n);
if(n==1)
{
system("cls");
printf("请输入ID名:"),scanf("%s",uName);
printf("请输入密码:"),scanf("%s",psw);
logUser=login(*userHead,uName,psw);
if(logUser)
showMenu2(discHead,logUser,*userHead);
}
if(n==2)
{
system("cls");
printf("请输入注册的ID名:"),scanf("%s",uName);
printf("请输入注册的密码:"),scanf("%s",psw);
printf("请输入开户的金额(必须大于0):");
while(!money)
scanf("%d",&money);
printf("请选择要注册的用户类型(0=管理员;1=普通用户):");
while(type!=0&&type!=1)
scanf("%d",&type);
regUser(userHead,userTail,uName,psw,money,type);
}
}
}
voidshowMenu2(DISC*discHead,USER*logUser,USER*userHead)//显示二级菜单
{
intn;
DISC*disc=NULL;
while(1)
{
n=0;
system("cls");
printf("欢迎登录:%s,余额:%d
",logUser->uName,logUser->money);
printf("1、开始转盘
2、账户充值
3、返回上级菜单
4、后台管理
");
scanf("%d",&n);
if(n==1)
{
showDisc(discHead,logUser);
disc=bets(discHead,logUser);
if(disc)
showDisc(discHead,logUser);
printf("任意键开始滚动圆盘。。。
");
getch();
roll(discHead,logUser);
}
if(n==2)
system("cls"),recharge(logUser);
if(n==3)
break;
if(n==4)
{
system("cls");
if(logUser->type!=0)
printf("对不起!您不是管理员,没有该权限!
按任意键继续。。。
"),getch(),getch();
else
showMenu3(discHead,logUser,userHead);//后台管理
}
}
}
voidshowMenu3(DISC*discHead,USER*logUser,USER*userHead)//显示三级菜单
{
intn;
charuName[21]={0};
while(1)
{
n=0;
system("cls");
printf("1、查看指定玩家
2、查看所有玩家
3、查看赌场盈利状况
4、返回上级菜单
");
scanf("%d",&n);
if(n==1)
{
printf("请输入要查找的玩家ID:"),scanf("%s",uName);
showUser(userHead,uName);
}
if(n==2)
showUser(userHead,NULL);
if(n==3)
showProfit(userHead);
if(n==4)
break;
}
}
voidshowProfit(USER*userHead)//统计赌场盈利状况
{
intsumPay=0,sumWin=0;
system("cls");
while(userHead->next)
{
sumPay+=userHead->next->pay;
sumWin+=userHead->next->win;
userHead=userHead->next;
}
printf("玩家共下注%d元,获胜者得到%d元,赌场总获利%d元
按任意键继续。。。
",sumPay,sumWin,sumPay-sumWin),getch();
}
voidshowUser(USER*userHead,char*uName)//查看指定玩家账户,参数uName传NULL,查看所有玩家账户
{
system("cls");
while(userHead->next)
{
if((uName&&strcmp(userHead->next->uName,uName)==0)||!uName)
{
printf("ID:%s,总下注金额%d,总获胜金额%d,当前余额%d
",userHead->next->uName,userHead->next->pay,userHead->next->win,userHead->next->money);
if(uName)
break;
}
userHead=userHead->next;
}
printf("按任意键继续。。。
"),getch();
}
USER*login(USER*userHead,char*uName,char*psw)//登录。登录成功返回用户节点,失败返回NULL
{
if(!userHead)
{
printf("错误!无可匹配数据,请先注册!
按任意键继续。。。
");
getch();
returnNULL;
}
while(userHead->next)
{
if(!strcmp(userHead->next->uName,uName)&&!strcmp(userHead->next->psw,psw))
returnuserHead->next;
userHead=userHead->next;
}
printf("用户不存在或密码输入错误!
按任意键继续。。。
");
getch();
returnNULL;
}
intrecharge(USER*logUser)//充值,成功返回1,失败返回0
{
intmoney=-1;
if(!logUser)
return0;
while(money<0)
printf("输入要充值的金额(输入0返回主菜单):"),scanf("%d",&money);
logUser->money+=money;
return1;
}
intregUser(USER**userHead,USER**userTail,char*uName,char*psw,intmoney,inttype)//注册用户,成功返回1,失败返回0。参数:uName:用户名。psw:密码。money:开户金额
{
USER*user=NULL,*userNew=NULL;
if(!*userHead)
*userHead=(USER*)malloc(sizeof(USER)),(*userHead)->next=NULL,meError(*userHead);
user=*userHead;
while(user->next)
{
if(strcmp(user->next->uName,uName)==0)
{
printf("用户名已存在!请重新输入。
按任意键继续。。。
");
getch();
return0;
}
user=user->next;
}
userNew=(USER*)malloc(sizeof(USER));
meError(userHead);
userNew->money=money;
userNew->pay=0;
userNew->win=0;
userNew->uName[0]=0;
userNew->psw[0]=0;
userNew->type=type;
strcpy(userNew->uName,uName);
strcpy(userNew->psw,psw);
userNew->next=NULL;
if(!((*userHead)->next))
(*userHead)->next=userNew;
else
(*userTail)->next=userNew;
*userTail=userNew;
printf("%s:%s注册成功!
按任意键继续。。。
",type?"普通用户":"管理员",uName);
getch();
return1;
}
DISC*init()
{
inti;
DISC*discHead=(DISC*)malloc(sizeof(DISC)),*discNew=NULL,*discTail=NULL;
meError(discHead);
discHead->next=NULL;
for(i=1;i<=36;i++)
{
discNew=(DISC*)malloc(sizeof(DISC));
meError(discNew);
discNew->flag='';
discNew->money=0;
discNew->num=i;
discNew->next=NULL;
if(!(discHead->next))
discHead->next=discNew;
else
discTail->next=discNew;
discTail=discNew;
}
returndiscHead;
}
voidreDisc(DISC*discHead)//重置转盘,每次滚动后调用
{
while(discHead->next)
{
discHead->next->flag='';
discHead->next->money=0;
memset(discHead->next->mStr,0,sizeof(discHead->next));
discHead=discHead->next;
}
}
introll(DISC*discHead,USER*logUser)//滚动转盘,猜中增加奖金,猜中返回1,没猜中返回0。参数:num=猜的数字,money=下的注
{
DISC*discHeadSave=discHead;
inti,rnum=0,win,flag;
while(1)
{
discHead->next->flag=16;
showDisc(discHeadSave,logUser);
rnum=rand()%36+1;
if(rnum==discHead->next->num)
break;
for(i=0;i<2000;i++);
discHead->next->flag='';
if(discHead->next->next)
discHead=discHead->next;
else
discHead=discHeadSave;
}
if(discHead->next->money>0)//如果随机滚到的数字有下注
{
win=discHead->next->money*5;
logUser->money+=win;
logUser->win+=win;
printf("恭喜猜中了,返还5倍!您获得了%d元。
",win);
flag=1;
}
else
{
printf("对不起!本次没有猜中,再接再厉。
");
flag=0;
}
reDisc(discHeadSave);
printf("按任意键继续。。。
");
getch();
returnflag;
}
DISC*bets(DISC*discHead,USER*user)//下注
{
intmoney=0,num=-1;
DISC*disc=NULL;
while(num<1||num>36)
printf("请输入要下注的数字:"),scanf("%d",&num);
while(!money)
printf("请输入要下注的金额(不超过余额且大于0):"),scanf("%d",&money);
if(money>user->money)
{
printf("对不起,您的余额不足,请充值或重新下注!
按任意键继续。。。
");
getch();
returnNULL;
}
user->money-=money;
user->pay+=money;
while(discHead->next)
{
if(discHead->next->num==num)
{
disc=discHead->next;
break;
}
discHead=discHead->next;
}
disc->money=money;
sprintf(disc->mStr,"%d",disc->money);
returndisc;
}
voidshowDisc(DISC*discHead,USER*logUser)
{
intclo=0;
system("cls");
printf("当前玩家:%s,余额:%d
",logUser->uName,logUser->money);
while(discHead->next)
{
printf("%c%2d%2s%-10s",discHead->next->flag,discHead->next->num,
discHead->next->money?"<-":"",discHead->next->money?discHead->next->mStr:"");//如要修改显示下注金额最大位数,这里%10d要改!!!
clo++;
if(clo==3)
clo=0,printf("
");
discHead=discHead->next;
}
}
voidmeError(void*p)//内存申请失败
{
if(p==NULL)
{
printf("异常:内存申请失败!回车结束程序!
");
while(getch()!='
');
exit(0);
}
}
C语言编程题,急,请大家帮忙啊,不会的也试试啊,急
好简单,给你代码:程序1:将100至200之间的不能被5整除的数输出源代码 a.c
#include<stdio.h>
#include<stdlib.h>
main(){
for(int i=100;i<=200;i++){
if( i%5) printf("%d不能被5整除!\n", i);
}
}
问题二:已知:X[12]={2,45,67,12,3,9,76,45,23,42,6,5},编程实现数组X中奇数的个数及奇数之和.
源代码 b.c
#include<stdio.h>
#include<stdlib.h>
main(){
int X[12]={2,45,67,12,3,9,76,45,23,42,6,5}, sum=0, count=0;
for(int i= 0; i<12; i++){
if( X[i]%2){
sum+= X[i];
count++;
}
}
printf("奇数个数是%d奇数之和是%d\n", count, sum);
}
另外,如果用windows下的tc等集成开发环境,编译我就不说了。
如果用linux或者unix,这样编译:
$cc-o a a.c
$cc-o b b.c
这样, a.c编译后得到的可执行程序是a,b.c编译后得到的可执行程序是b,运行这样就可以了
$a
$b
不过如果你用root用户操作,执行时应该这样
#./a
#./b
关于大一c语言必背编程题和c语言试卷及答案大一的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。