导航:首页 > 编程知识 > c编程选择什么题

c编程选择什么题

发布时间:2024-07-17 10:45:13

❶ 计算机二级c语言考试的题型有哪些

单项选择题共四十题,四十分,每一个选扮族择分值为1分,其中单项选择中含公共基础知识,该部分十道题,占10分。

二、程序填空题

程序填空题有2-3个空,占比分值18分,该题型为上机题,其三个空占比18分,可想而知其重要性。

三、程序改错题

程序改错题有2-3处错误,该题型分值占比也是18分,难度比程序填空题略难。该题型也为上机题,也许重视该类题型。

四、程序设计题

程序设计题是计算机二级C语言考试重点,该题为一大题,占比分值24分,该题型也为上机题,为考试重点,需多加练习。

注:二级公共基础知识在各科考试掘培选择题中体现。程序设计部分,判缺唯主要考查考生对程序设计语言使用和编程调试等基本能力,在选择题和操作题中加以体现。

计算机二级c语言考试考试要求:

一、熟悉Visual C++2010 Express集成开发环境。

二、掌握结构化程序设计的方法,具有良好的程序设计风格。

三、掌握程序设计中简单的数据结构和算法并能阅读简单的程序。

四、在Visual C++2010 Express集成环境下,能够编写简单的C程序,并具有基本的纠错和调试程序的能力。

以上便是计算机二级c语言考试题型及分值说明。

❷ 大一C语言编程题

车票根据题意两两站点连线生成,金额和数量分别用随机数。

数据存储:站点,车票,用户分别为3个结构体,用于对应数据库

购买流程:检查输入数值有效性->检查车票库存->购买成功同步修改用户购买流水及车票库存。(这里题目需求不明确,没有指明用户购买方式),我的代码允许一个用户同时购买多种票,每种票可分批购买多张。购买流水记录自动增加和更新。

退票流程:检查输入和用户购买记录,同步更新用户及车票信息。

删除流程:选择删除没有被用户购买的票(函数检查所有用户,虽然本题只要一个用户,实际传参用户数组首地址)。

PS: 这个题目涉及到增删改,用链表来写更好,但考虑你学习范围,没有使用链表而是动态数组,动态数组删除,考虑内存占用,不仅要需循环移位还要释放多余地址。

另外整体程序,异常的处理我只是单纯返回0或者1或者-1区分基本的成功与失败。你如想对个别异常进行特殊处理,自行修改返回值,接收判断。

下面是代码:

#include <stdio.h>

#include <stdlib.h>

#include <string.h>

#include <time.h>

#include <windows.h>

#include <conio.h>

#define MS 5//最大站点数

typedef struct station

{

char sid[10];

char sName[20];

}STN;

typedef struct ticket

{

int tid;//票编号

STN *ssP;//起始站

STN *tsP;//终点站

int value;//票价

int number;//数量

}TKT;

typedef struct userInfo//用户

{

char uid[20];//身份证号

int cnt;//购买的票种类数量

int *btids;//购买的所有票id数组

int *btNum;//购买的所有票数量数组

}UIFO;

int init(STN stns[MS],TKT **tkts);//初始化车站、票数据

int disAllTickets(TKT *tkts);

int buyTicket(UIFO *uifo,TKT *tkts);//异常返回0

int reTicket(UIFO *uifo,TKT *tkts);//异常返回0

int showMenu(UIFO *uifo,TKT *tkts);

int delIntByIndex(int *nums,int len,int index);//通过下标index删除动态整型数组nums对应元素,并释放多余地址,返回删除后的数组长度,异常返回-1

int delTkts(UIFO *uifos,int len,TKT *tkts);//删除指定票(检查用户组,只要有一个用户购买,无法删除)

int cnt;//票种类数量

int main()

{


STN stns[MS];

TKT *tkts=NULL;

UIFO uifo={"321002199902050614",0,NULL,NULL};

srand(time(NULL));

cnt=init(stns,&tkts);

printf("共生成%d组票(每组往返两种票,共%d种票) ",cnt/2,cnt);

printf("按任意键继续。。。。 "),getch();

system("cls");

showMenu(&uifo,tkts);

return 0;

}

int showMenu(UIFO *uifo,TKT *tkts)

{

int n=5;

printf("(1) Buy ticket ");

printf("(2) Refund ticket ");

printf("(3) Remove ticket ");

printf("(4) Display all tickets ");

printf("(0) Exit ");

while(n<0 || n>4)

scanf("%d",&n);

switch(n)

{

case 0: return 0;

case 1: if(!buyTicket(uifo,tkts)) return 0;break;

case 2: if(!reTicket(uifo,tkts)) return 0;break;

case 3: if(!delTkts(uifo,1,tkts)) return 0;break;

//这里删除功能,用户多名,要传数组首地址,由于演示只有一个用户(len=对应用户数),所以只传该用户地址(len=1)

case 4: disAllTickets(tkts);break;

}

showMenu(uifo,tkts);

return 1;

}

int disAllTickets(TKT *tkts)

{

int i;

for(i=0;i<cnt;i++)

printf("编号:%2d 路程:%s-%s 票价:%3d 剩余票数:%d ",tkts[i].tid,tkts[i].ssP->sName,tkts[i].tsP->sName,tkts[i].value,tkts[i].number);

printf("按任意键继续。。。。 "),getch();

system("cls");

return 1;

}

int delIntByIndex(int *nums,int len,int index)

{

int i,*temp=NULL;

if(index>len-1) return -1;

for(i=index;i<len-1;i++)

nums[i]=nums[i+1];

len--;

if(len)

{

temp=(int *)realloc(nums,sizeof(int)*len);

if(!temp) return -1;

nums=temp;

}

else

free(nums);

return len;

}

int reTicket(UIFO *uifo,TKT *tkts)

{

int i,j,tid,n,index,len,flag=0;

printf("当前用户购买记录: ");

for(i=0;i<uifo->cnt;i++)

{

for(j=0;j<cnt;j++)

if(tkts[j].tid==uifo->btids[i]) index=j;

printf("--车票编号:%d,起末站:%s-%s,购买票数:%d ",uifo->btids[i],tkts[index].ssP->sName,tkts[index].tsP->sName,uifo->btNum[i]);

}

printf("请输入要退票的车票id及票数:"),scanf("%d%d",&tid,&n);

for(i=0;i<uifo->cnt;i++)

if(uifo->btids[i]==tid && uifo->btNum[i]>=n)

{

for(j=0;j<cnt;j++)

if(tkts[j].tid==uifo->btids[i]) tkts[j].number+=n;//同步修改对应车票剩余票数

uifo->btNum[i]-=n;//用户购买记录修改

if(uifo->btNum[i]==0)//某种车票全部退完,删除该条记录

{

len=delIntByIndex(uifo->btNum,uifo->cnt,i);

if(len==-1) return 0;

len=delIntByIndex(uifo->btids,uifo->cnt,i);

if(len==-1) return 0;

uifo->cnt=len;

}

flag=1;

break;

}

if(flag)

printf("退票成功! ");

else

printf("无此购买记录或输入数量不符合 ");

printf("按任意键继续。。。。 "),getch();

system("cls");

return 1;

}

int buyTicket(UIFO *uifo,TKT *tkts)

{

char spn[20],tpn[20];

int i,n=-1,index=-1,*temp=NULL;

for(i=0;i<cnt;i++)

printf("编号:%2d 路程:%s-%s 票价:%3d 剩余票数:%d ",tkts[i].tid,tkts[i].ssP->sName,tkts[i].tsP->sName,tkts[i].value,tkts[i].number);

printf("请输入始发站站名和终点站站名:"),scanf("%s%s",spn,tpn);

for(i=0;i<cnt;i++)

if(strcmp(tkts[i].ssP->sName,spn)==0 && strcmp(tkts[i].tsP->sName,tpn)==0)

{

printf("车票%s-%s 票价:%3d 剩余票数:%d ",tkts[i].ssP->sName,tkts[i].tsP->sName,tkts[i].value,tkts[i].number);

index=i;

break;

}

if(index==-1)

printf("购买失败!无此路程的车票 ");

else

{

while(n<=0)

{

printf("请输入要购买的数量(大于0):"),scanf("%d",&n);

if(tkts[index].number<n)

printf("错误:车票数量不足或者输入数值超出范围!请重新输入! "),n=-1;

}

for(i=0;i<uifo->cnt;i++)//检查用户购买记录,重复票累加购买数量,不同票新增记录

{

if(uifo->btids[i]==tkts[index].tid)

{

printf("该票已购买了%d张,现再次购买%d张,累计购买了%d张 ",uifo->btNum[i],n,uifo->btNum[i]+n);

uifo->btNum[i]+=n;

tkts[index].number-=n;

break;

}

}

if(i==uifo->cnt)//未检查到重复记录,新增

{

if(!uifo->btids)

{

uifo->btids=(int *)malloc(sizeof(int));

if(!uifo->btids) return 0;

uifo->btNum=(int *)malloc(sizeof(int));

if(!uifo->btNum) return 0;

}

else

{

temp=(int *)realloc(uifo->btids,sizeof(int)*(uifo->cnt+1));

if(!temp) return 0;

uifo->btids=temp;

temp=(int *)realloc(uifo->btNum,sizeof(int)*(uifo->cnt+1));

if(!temp) return 0;

uifo->btNum=temp;

}

uifo->btids[uifo->cnt]=tkts[index].tid;

printf("该票购买了%d张 ",(uifo->btNum[uifo->cnt]=n));

tkts[index].number-=n;

uifo->cnt++;

printf("用户购买记录: ");

for(i=0;i<uifo->cnt;i++)

printf("--车票编号:%d,购买票数:%d ",uifo->btids[i],uifo->btNum[i]);

}

printf("本次成功购买了%s-%s的票%d张! ",tkts[index].ssP->sName,tkts[index].tsP->sName,n);

}

printf("按任意键继续。。。。 "),getch();

system("cls");

return 1;

}

int delTkts(UIFO *uifos,int len,TKT *tkts)//len:所有购买的用户数量

{

int i,j,k,tid,flag=0,index;

for(i=0;i<cnt;i++)

printf("编号:%2d 路程:%s-%s 票价:%3d 剩余票数:%d ",tkts[i].tid,tkts[i].ssP->sName,tkts[i].tsP->sName,tkts[i].value,tkts[i].number);

printf("请输入要删除的车票编号:"),scanf("%d",&tid);

for(i=0;i<cnt;i++)

if(tid==tkts[i].tid)

{

index=i;

flag=1;

for(j=0;j<len;j++)//检查所有用户购买记录

{

for(k=0;k<uifos[j].cnt;k++)

if(uifos[j].btids[k]==tid)

{

flag=0;

printf("该票已被用户购买,无法删除,需先完成退票! ");

break;

}

if(!flag)

break;

}

break;

}

if(!flag) printf(" 删除失败,输入数值超出范围或不可删除! ");

else

{

cnt--;

if(cnt==0)

{

free(tkts[index].ssP);

free(tkts[index].tsP);

free(&tkts[index]);

}

else

{

free(tkts[index].ssP);

free(tkts[index].tsP);

for(i=index;i<cnt;i++)

tkts[i]=tkts[i+1];

tkts[cnt].ssP=NULL;

tkts[cnt].tsP=NULL;

free(&tkts[cnt]);

}

printf(" 删除成功! ");

}

printf("按任意键继续。。。。 "),getch();

system("cls");

return 1;

}

int init(STN stns[MS],TKT **tkts)

{

TKT *tTemp=NULL;

int i,j,n,v,cnt=2;

static int id=1;

printf("生成站点: ");

for(i=0;i<MS;i++,id++)

{

sprintf(stns[i].sid,"车站%03d",id);

sprintf(stns[i].sName,"SN%03d",id);

printf("----站点名:%s。站点ID:%s ",stns[i].sid,stns[i].sName);

}

printf("计算所有站点连线,生成车票(票是往返,所以一次生成往返两组票): ");

for(i=0;i<MS;i++)

for(j=i+1;j<MS;j++)

{

if(!(*tkts))

{

*tkts=(TKT *)malloc(sizeof(TKT)*2);

if(!(*tkts)) return -1;

}

else

{

tTemp=(TKT *)realloc((*tkts),sizeof(TKT)*cnt);

if(!tTemp) return -1;

*tkts=tTemp;

}

n=rand()%4+2;//每种票随机2~5张(保证总数大于20)

v=rand()%201+50;//随机生成票价50~250

(*tkts)[cnt-1].tid=cnt;

(*tkts)[cnt-1].ssP=&stns[i];

(*tkts)[cnt-1].tsP=&stns[j];

(*tkts)[cnt-1].value=v;

(*tkts)[cnt-1].number=n;

(*tkts)[cnt-2].tid=cnt-1;

(*tkts)[cnt-2].ssP=&stns[j];

(*tkts)[cnt-2].tsP=&stns[i];

(*tkts)[cnt-2].value=v;

(*tkts)[cnt-2].number=n;

printf("----%s和%s的之间往返票各生成%d张,票价为%d(随机) ",stns[i].sName,stns[j].sName,n,v);

cnt+=2;

}

return cnt-2;

}

//答题不易,如采纳的,请不要无故删除问题。

❸ 计算机二级c语言程序设计考什么

计算机二级C语言考试内容:

1、C语言程序的结构。程序的构成,main函数和其他函数;头文件,数据说明,函数的开始和结束标志以及程序中的注释;源程序的书写格式;C语言的风格。

2、数据类型及其运算。C的数据类型;C运算符的种类、运算优先级和结合性;不同类型数据间的转换与运算;C表达式类型(赋值表达式,算术表达式,关系表达式,逻辑表达式,条件表达式,逗号表达式)和求值规则。

3、基本语句。表达式语句,空语句,复合语句;输入输出函数的调用,正确输入数据并正确设计输出格式。

4、选择结构程序设计。用if 语句实现选择结构;用switch语句实现多分支选择结构;选择结构的嵌套。

5、循环结构程序设计。for循环结构;while和do-while循环结构;continue语句和break语句;循环的嵌套。

6、数组的定义和引用。一维数组和二维数组的定义、初始化和数组元素的引用;字符串与字符数组。

7、函数。库函数的正确调用;函数的定义方法;函数的类型和返回值;形式参数与实在参数,参数值的传递;函数的正确调用,嵌套调用,递归调用;局部变量和全局变量;变量的存储类别(自动,静态,寄存器,外部),变量的作用域和生存期。

8、编译预处理。宏定义和调用(不带参数的宏,带参数的宏);文件包含冶处理。

9、指针。地址与指针变量的概念,地址运算符与间址运算符;一维、二维数组和字符串的地址以及指向变量、数组、字符串、函数、结构体的指针变量的定义。通过指针引用以上各类型数据;用指针作函数参数;返回地址值的函数;指针数组,指向指针的指针。

10、结构体(即“结构冶)与共同体(即“联合冶)。用typedef 说明一个新类型;结构体和共用体类型数据的定义和成员的引用;通过结构体构成链表,单向链表的建立,结点数据的输出、删除与插入;二叉树基本知识。

11、位运算。位运算符的含义和使用;简单的位运算。

12、文件操作。文件类型指针(FILE类型指针);文件的打开与关闭(fopen,fclose);文件的读写(fputc,fgetc,fputs,fgets,fread,fwrite,fprintf,fscanf 函数的应用),文件的定位(rewind,fseek函数的应用)。

(3)c编程选择什么题扩展阅读:

二级C语言考试要求:

1、熟悉Visual C++2010 Express集成开发环境。

2、掌握结构化程序设计的方法,具有良好的程序设计风格。

3、掌握程序设计中简单的数据结构和算法并能阅读简单的程序。

4、在Visual C++6. 0集成环境下,能够编写简单的C程序,并具有基本的纠错和调试程序的能力。

二级C语言考试方式:

上机考试,考试时长120分钟,满分100分。题型及分值:单项选择题40分(含公共基础知识部分10分)、操作题60分(包括填空题、改错题及编程题(24分))。考试环境:Visual C++2010 Express。

❹ 计算机二级c语言程序设计有哪些题型

全国计算机二级C语言程序设计包括40个单选题(每题一分)和三道操作题(60分)。

单选题中1~10题为二级公共基础知识,单选题的11~40题是C语言的内容。

操作题包括程序填空(18分)、程序改错(18分)和编程题(24分)各一题。

程序填空是将一个完整的程序,扣掉两到三处,让考生将它填写完整。由于每位考生具体抽到的题目不同,程序填空有2到3个空要填。

程序改错也是一个完整的程序,其中有2~3处错误要求考生将他们改正。

编程题是要求考生编写一个程序,然后运行出题干要求的结果。题目中主函数main()会完整给出,在主函数中将调用fun()函数,fun函数由考生自己编写。编程题以运行结果给分,所编写完成后必须运行,否则没分。

二级C语言程序设计考试涉及公共基础知识和C语言两块。公共基础知识内容包括数据结构与算法、程序设计基础、软件工程基础、数据库设计基础四部分。考10个单选每个1分。

C语言有基础知识(C语言概述、常量与变量、数据类型、运算符和表达式),编程三大结构(顺序结构、选择结构、循环结构),数组、函数和指针,其他内容(预处理命令、结构体和共用体、位运算、文件)四大部分内容。重点是第二、三部分。

阅读全文

与c编程选择什么题相关的资料

热点内容
查看linuxarp表 浏览:67
授权文件名什么意思 浏览:806
炉石传说盒子20版本停止更新公告 浏览:245
ps修改文件画布尺寸的方法 浏览:258
c打开文件插件 浏览:866
win10开机弹出文件夹 浏览:927
辣鸡app哪个最好 浏览:90
js正则匹配数字和小数 浏览:527
数据库为空怎么解决 浏览:97
java文件断点上传 浏览:452
要火app是哪个公司 浏览:354
折扣手游平台app哪个好ios 浏览:363
如何备份wifi密码 浏览:239
聚财通APP哪里能下载 浏览:415
苹果打不开4g网络 浏览:875
cad图层配置在哪个文件夹 浏览:201
时尚男装app哪个好 浏览:222
公司网站手机版模板下载 浏览:701
页面获取文件夹路径js 浏览:723
斐讯k2登陆密码 浏览:981

友情链接