最新C语言单项选择题标准化考试系统

合集下载

C单项选择题标准化考试系统

C单项选择题标准化考试系统

目录1.课程设计目的12.课程设计题目描述和要求1课程题目1课程要求13. 课程设计报告内容1算法描述1源程序 24.课程设计总结:65.参照书目 71课程设计目的练习自己的着手能力, 在学习理论的同时增强自己的编程能力, 使理论与实践相结合, 在学习书本的同时扩展自己的课外知识.2课程设计题目描述和要求课程题目单项选择题标准化考试系统课程要求〔一〕功能要求:〔1〕用文件保存试题库。

〔每个试题包括题干、 4 个备选答案、标准答案〕〔2〕试题录入:可随时增加试题到试题库中〔3〕试题抽取:每次从试题库中可以随机抽出N 道题〔 N由键盘输入〕(4〕答题:用户可实现输入自己的答案(5〕自动判卷:系统可依照用户答案与标准答案的对照实现判卷并给出成绩。

〔二〕其他要求:〔1〕只能使用C/C++语言,源程序要有合适的说明,使程序简单阅读(2〕最少采用文本菜单界面〔若是能采用图形菜单界面更好〕(3〕学生可自动增加新功能模块〔视情况可别的加分〕〔4〕写出课程设计报告,详尽要求见相关说明文档.3课程设计报告内容算法描述定义题目数组,选向数组,输入题目的及选向并给定正确答案。

输入所要答的题目数,尔后进行答题。

输入的答案与标准答案进行比较,若是一致,那么正确,否那么错误。

最后依照题目数及答对题目数进行输出得分。

源程序#include <iostream>#include <fstream>#include ""using namespace std;struct question {char ask[200];/*选择题题目*/char answer[4][80];/*选择题选项*/int right;/*正确答案*/struct question *next;};。

c语言课程设计报告单项选择题标准化考试系统设计

c语言课程设计报告单项选择题标准化考试系统设计
2.1系统总框图
2.2主要结构组与函数
题目,选项ABCD答案:
typedef struct Exam
{
char question[1024];
char A[100];
char B[100];
char C[100];
char D[100];
char correct; //正确答案选项
}Exam;
void load_question();
计算机程序设计基础(C语言)
课程设计说明书
设计题目:单项选择题标准化考试系统设计
班级:
姓名:
学号:
2021年7月
填写格式及说明
1、系统概述
本系统是对学生测试的单项选择题标准化系统设计,顾名思义就是用于对学生的测试考量,方便进行学生的测试,同时也简化了老师的试题录入和判卷,是一个简单实用的考试系统。
2、数据结构设计
printf("1.导入试卷\n");
printf("2.试题录入\n");
printf("3.测试答题\n");
printf("4.浏览试题\n");
printf("5.保存退出\n");
printf("请选择:");
scanf("%d",&i);
fflush(stdin);
return i;
}
int main()
p = strtok(NULL, "\t");
questions[count].correct = p[0];
count++;
}
}

计算机c语言考试题库和答案

计算机c语言考试题库和答案

计算机c语言考试题库和答案一、单项选择题(每题2分,共20分)1. 在C语言中,以下哪个选项是正确的标识符?A. 2variableB. variable2C. _variableD. variable!答案:C2. C语言中,哪个关键字用于定义一个函数?A. classB. functionC. defD. int答案:D3. 下列哪个选项是C语言中的合法整型常量?A. 0x12B. 0123C. 08D. 0.5答案:A4. 在C语言中,哪个运算符用于计算两个整数的除法?A. /B. %C. *D. //答案:A5. 下列哪个选项是C语言中的合法浮点型常量?A. 3.14B. .14C. 3e2D. 所有选项答案:D6. C语言中,哪个关键字用于定义一个结构体?A. structB. unionC. classD. enum答案:A7. 在C语言中,哪个函数用于计算字符串的长度?A. strlen()B. strcpy()C. strcat()D. strcmp()答案:A8. C语言中,哪个关键字用于定义一个指针?A. pointerB. ptrC. *D. ref答案:C9. 下列哪个选项是C语言中的合法字符常量?A. 'a'B. "a"C. '123'D. '\n'答案:D10. 在C语言中,哪个函数用于将字符串复制到另一个字符串?A. strcpy()B. strncpy()C. strcat()D. strcmp()答案:A二、填空题(每题2分,共20分)11. 在C语言中,使用________关键字可以定义一个全局变量。

答案:extern12. C语言中,使用________函数可以将一个浮点数转换为整数。

答案:(int) 或者 (int)()13. C语言中,使用________运算符可以实现逻辑非操作。

答案:!14. C语言中,使用________函数可以实现字符串的比较。

C语言课程设计报告---单项选择题标准化考试系统

C语言课程设计报告---单项选择题标准化考试系统

《C语言程序设计》课程设计题目:单项选择题标准化考试系统专业:计算机科学与技术班级:计科1001目录《C语言程序设计》课程设计 (1)1. 程序分析与设计 (3)2.流程图 (3)3. 源程序清单 (3)4.调试过程 (4)参考文献 (5)附录 (5)单项选择题标准化考试系统1. 程序分析与设计系统给用户提供一个简单的人机界面,使用户可以根据提示输入操作项,调用相关的函数实现对应的功能,主要功能描述如下:①用文件保存试题库:每个试题包括题干、4个备选答案、标准答案,本模块的功能是将单链表中的信息存储到文本文件中,系统将提示用户输入文本文件名,确认后单链表中的信息存储到文本文件中;②试题抽取:从磁盘读取文本文件,可以随机的从中选取N个题目并显示出来给用户进行测验,每次从试题库中可以随机抽出N道题(N由键盘输入);③自动判卷:用户答完所选的题目后,系统可根据用答题户答案与标准答案的对比实现判卷并给出成绩;④试题录入:用户可以随时增加试题到试题库中,根据提示输入题目的主干、四个基本选项和一个标准答案;⑤退出:退出系统;⑥系统主控平台:显示该系统可以进行的操作选项,允许用户进行其想要进行的操作,包括添加试题信息、随机抽取试题、保存到文件和退出系统等;总体设计:1)添加试题(add()函数)首先建立单链表,调用input_exam()函数输入试题的基本信息,将用户输入试题的基本信息储存到单链表中,提示用户是否继续输入,用户输入“Y”或“y”,则调用add()函数实现继续添加试题的操作;用户输入“”或“”,则返回主菜单界面。

2)随机抽取试题(ran_choice()函数)首先用typedef定义试题的结构体类型的全局变量ran及rans,从键盘输入,将该数及单链表的头指针传给ran_choice()函数,调用rand()随机数产生函数及srand(seed)设置一个独特的随机数种子,运用for()循环产生N个随机数,根据指针运算从单链表中取出N个试题的信息并显示出来。

c语言单项选择题及答案

c语言单项选择题及答案

c语言单项选择题及答案一、选择题1. C语言中,以下哪个选项是合法的数据类型?A. intB. floatC. doubleD. all of above2. 在C语言中,以下哪个运算符用于取模?A. %B. /C.D. &3. 在C语言中,以下哪个关键字用于定义整型变量?A. floatB. intC. doubleD. char4. 在C语言中,以下哪个选项表示逻辑运算符?A. &&B. ||C. &&D. both A and B5. 在C语言中,以下哪个函数用于输入?A. printfB. scanfC. getsD. putchar6. 在C语言中,以下哪个函数用于输出?A. printfB. scanfC. getsD. putchar7. 在C语言中,以下哪个选项表示无限循环?A. for(;;)B. while(1)C. do{...}while(1)D. all of above8. 在C语言中,以下哪个选项表示局部变量?A. staticB. globalC. registerD. auto9. 在C语言中,以下哪个选项表示动态内存分配函数?A. mallocB. callocC. reallocD. all of above10. 在C语言中,以下哪个选项表示指针变量?A. int a;B. float p;C. double d;D. char c;二、答案及解析1. 答案:D (all of above)解析:在C语言中,int、float、double都是合法的数据类型。

2. 答案:A (%)解析:取模运算符是%,用于计算两个整数相除的余数。

3. 答案:B (int)解析:在C语言中,使用int关键字来定义整型变量。

4. 答案:D (both A and B)解析:逻辑运算符包括逻辑与(&&)和逻辑或(||)。

5. 答案:B (scanf)解析:scanf函数用于从标准输入读取格式化的输入。

计算机二级c语言考试题库和答案

计算机二级c语言考试题库和答案

计算机二级c语言考试题库和答案一、单项选择题(每题2分,共40分)1. 在C语言中,以下哪个选项是正确的整型常量?A. 0x12B. 0x12.3C. 0x12LD. 0x12U答案:A2. C语言中,以下哪个选项是正确的字符串字面量?A. "Hello"B. 'Hello'C. "Hello", "World"D. 'Hello', 'World'答案:A3. 下列哪个选项是合法的C语言变量名?A. 2variableB. variable2C. _variableD. variable-2答案:B4. 在C语言中,以下哪个选项是正确的浮点型常量?A. 3.14E2B. 3.14e-2C. 3.14ED. 3.14e答案:B5. 下列哪个选项是C语言中的保留字?A. defineB. sizeofC. includeD. myFunction答案:B6. 在C语言中,以下哪个选项是正确的数组声明?A. int array[5] = {1, 2, 3, 4, 5};B. int array[] = {1, 2, 3, 4, 5};C. int array[5] = {1, 2, 3};D. int array = {1, 2, 3, 4, 5};答案:B7. 下列哪个选项是C语言中的逻辑运算符?A. &&B. ||C. !D. All of the above答案:D8. 在C语言中,以下哪个选项是正确的函数声明?A. void myFunction();B. int myFunction();C. int myFunction(int x);D. All of the above答案:D9. 下列哪个选项是C语言中的位运算符?A. &B. |C. ^D. All of the above答案:D10. 在C语言中,以下哪个选项是正确的指针声明?A. int *ptr;B. int ptr[];C. int *ptr = 0;D. All of the above答案:D11. 下列哪个选项是C语言中的循环结构?A. forB. whileC. do-whileD. All of the above答案:D12. 在C语言中,以下哪个选项是正确的条件语句?A. ifC. if-elseD. All of the above答案:D13. 下列哪个选项是C语言中的输入输出函数?A. printf()B. scanf()C. Both A and BD. None of the above答案:C14. 在C语言中,以下哪个选项是正确的结构体声明?A. struct {int a;float b;B. struct myStruct {int a;float b;};C. Both A and BD. None of the above答案:C15. 下列哪个选项是C语言中的动态内存分配函数?A. malloc()B. calloc()C. realloc()D. All of the above答案:D16. 在C语言中,以下哪个选项是正确的枚举类型声明?A. enum Color {RED, GREEN, BLUE};B. enum {RED, GREEN, BLUE};C. Both A and BD. None of the above答案:C17. 下列哪个选项是C语言中的联合体声明?A. union {int a;float b;} myUnion;B. union myUnion {int a;float b;};C. Both A and BD. None of the above答案:C18. 在C语言中,以下哪个选项是正确的宏定义?A. #define PI 3.14B. const double PI = 3.14;C. Both A and BD. None of the above答案:A19. 下列哪个选项是C语言中的文件操作函数?A. fopen()B. fclose()C. Both A and BD. None of the above答案:C20. 在C语言中,以下哪个选项是正确的递归函数声明?A. int factorial(int n);B. void printNumbers(int n);C. int factorial(int n) {if (n == 0) return 1;return n * factorial(n - 1);}D. All of the above答案:D二、填空题(每题2分,共20分)21. 在C语言中,`sizeof`运算符用于获取______的字节大小。

c 单项选择题标准化考试系统

c  单项选择题标准化考试系统

c 单项选择题标准化考试系统在现代教育体系中,考试是对学生学习成果的一种重要评估方式。

而单项选择题作为其中的一种形式,在标准化考试系统中扮演着至关重要的角色。

本文将就单项选择题标准化考试系统进行探讨,分析其特点和优势,并提出一些改进建议。

首先,单项选择题作为标准化考试系统的一部分,具有明确的题目结构和选项设置。

这种题型要求考生在给定的选项中选择最符合题意的答案,具有一定的客观性和标准性。

这种特点使得单项选择题在大规模考试中得以广泛应用,例如高考、托福、雅思等。

其次,单项选择题的设计可以全面覆盖考试范围,从而有效地检验学生的知识掌握情况。

通过设计不同难度和类型的题目,可以全面地考察学生对知识点的掌握程度,从而更加客观地评价学生的学习成果。

另外,单项选择题的批改和成绩统计相对简便快捷。

通过自动化的评分系统,可以快速准确地对学生的答题情况进行统计和分析,节约了人力和时间成本。

然而,单项选择题也存在一些不足之处。

首先,它可能会导致学生的应试心理过重,而忽视了对知识的深入理解和应用能力的培养。

其次,单项选择题的设计需要十分严谨和精准,一旦出现错误的选项或者模糊的题意,就可能导致考生的答题错误,影响了评价的准确性。

为了改进单项选择题的考试系统,我们可以采取一些措施。

首先,可以适当增加题目中的案例分析和实际应用题型,从而更好地考察学生的综合能力。

其次,可以加强对题目设计的质量把控,确保题目清晰明了,选项准确无误。

此外,也可以结合现代技术手段,开发更加智能化的评分系统,提高评分的准确性和效率。

总的来说,单项选择题作为标准化考试系统的一部分,具有一定的优势和不足之处。

通过合理的设计和改进,可以更好地发挥其作用,促进学生的全面发展和知识水平的提高。

希望未来能够有更加科学合理的考试评价体系,为学生的学习和成长提供更好的支持和指导。

c语言编程题考试题库及答案

c语言编程题考试题库及答案

c语言编程题考试题库及答案一、单项选择题1. 在C语言中,以下哪个选项是正确的整型常量?A. 0x12LB. 0x12.5C. 0x12.0D. 0x12F答案:A2. C语言中,以下哪个选项是正确的字符串字面量?A. "Hello, World"B. 'Hello, World'C. "Hello, World\n"D. "Hello, World\"答案:C3. 在C语言中,以下哪个选项是正确的函数声明?A. int add(int a, int b);B. int add(int, int);C. int add();D. int add(a, b);答案:A4. C语言中,以下哪个选项是正确的数组声明?A. int a[5] = {1, 2, 3, 4, 5};B. int a[] = {1, 2, 3, 4, 5};C. int a[5] = {1, 2, 3};D. int a = {1, 2, 3, 4, 5};答案:B5. 在C语言中,以下哪个选项是正确的指针声明?A. int *p = 0;B. int *p = "Hello";C. int *p = 5;D. int p = 0;答案:A二、填空题1. 在C语言中,表示逻辑“与”操作的运算符是 ________ 。

答案:&&2. C语言中,表示逻辑“或”操作的运算符是 ________ 。

答案:||3. 在C语言中,表示逻辑“非”操作的运算符是 ________ 。

答案:!4. C语言中,表示赋值操作的运算符是 ________ 。

答案:=5. 在C语言中,表示取地址操作的运算符是 ________ 。

答案:&三、程序阅读题阅读以下C语言程序段,并回答问题。

```c#include <stdio.h>int main() {int a = 10, b = 20, c;c = a + b;printf("%d", c);return 0;}```1. 程序的输出结果是什么?答案:302. 如果将`c = a + b;`改为`c = a * b;`,程序的输出结果是什么?答案:200四、编程题1. 编写一个C语言程序,实现两个整数的加法运算,并输出结果。

C++ 单项选择题标准化考试系统

C++ 单项选择题标准化考试系统

目录1.课程设计目的 (1)2.课程设计题目描述和要求 (1)2.1课程题目 (1)2.2课程要求 (1)3.课程设计报告内容 (1)3.1算法描述 (1)3.2 源程序 (2)4.课程设计总结: (6)5.参考书目 (7)1 课程设计目的练习自己的动手能力,在学习理论的同时增强自己的编程能力,使理论与实践相结合,在学习书本的同时扩展自己的课外知识.2 课程设计题目描述和要求2.1课程题目单项选择题标准化考试系统2.2课程要求(一)功能要求:(1)用文件保存试题库。

(每个试题包括题干、4个备选答案、标准答案)(2)试题录入:可随时增加试题到试题库中(3)试题抽取:每次从试题库中可以随机抽出N道题(N由键盘输入)(4)答题:用户可实现输入自己的答案(5)自动判卷:系统可根据用户答案与标准答案的对比实现判卷并给出成绩。

(二)其它要求:(1)只能使用C/C++语言,源程序要有适当的注释,使程序容易阅读(2)至少采用文本菜单界面(如果能采用图形菜单界面更好)(3)学生可自动增加新功能模块(视情况可另外加分)(4)写出课程设计报告,具体要求见相关说明文档.3 课程设计报告内容3.1算法描述定义题目数组,选向数组,输入题目的及选向并给定正确答案。

输入所要答的题目数,然后进行答题。

输入的答案与标准答案进行比较,如果一致,则正确,否则错误。

最后根据题目数及答对题目数进行输出得分。

3.2 源程序#include <iostream>#include <fstream>#include "dos.h"using namespace std;struct question {char ask[200];/*选择题题目*/char answer[4][80];/*选择题选项*/int right;/*正确答案*/struct question *next;};//函数声明int MenuChoice(void); //选择菜单struct question *charu_timu(struct question *fst, const struct question *ad); //向列表中插入试题函数struct question *da_an_weizhi(struct question *seek, long len, long max); //确定一个读取答案的位置的函数void GetQuestion(struct question *src); //获取问题,选项,以及正确答案函数void bao_cun(const struct question *ed, FILE *saf); //将列表中的试题保存在文件中的函数struct question *LoadFile(struct question *td, FILE *laf); //从文件中读取题目,将题目添加到列表中的函数int GetAnswer(void); //输入选择题的答案void huida_Question(const struct question *que, int n); //回答问题函数main(){struct question *start = NULL, temp;long choice, line = 0, c;FILE *fp = fopen("wangkun.dat", "a+");while ((choice = MenuChoice()) != 3)if (choice == 1){GetQuestion(&temp);start = charu_timu(start, &temp);++line;/*统计列表的长度*/system("cls");}else if (choice == 2){c =8;while (c > 6 || c > line) {cout<<"请输入要回答的问题数量: ";cin>>c;}huida_Question(start, line);}return 0;}/*da_an_weizhi函数确定一个读取答案的位置,len代表要读取的答案数,max 代表列表的长度*/struct question *da_an_weizhi(struct question *seek, long len, long max) {int i;while (i--)seek = seek->next;//找到指定的位置return seek;}//向列表中插入试题struct question *charu_timu(struct question *fst, const struct question *ad){struct question *newPtr = (struct question *)malloc(sizeof(struct question));if (newPtr == NULL)exit(0);*newPtr = *ad;newPtr->next = fst;return newPtr;}/*获取问题,选项,以及正确答案*/void GetQuestion(struct question *src){int i = 0;cout<<"请输入选择题题目:"<<endl;cin>>src->ask;while (i < 4) {cout<<"请输入选项"<<char(i + 'A')<<"的答案:"<<endl;cin>>src->answer[i++];}src->right = GetAnswer();}/*从文件中读取题目,将题目添加到列表中*/struct question *LoadFile(struct question *td, FILE *laf){struct question temp;while (fread(&temp, 1, sizeof(struct question), laf))td = charu_timu(td, &temp);return td;}/*将列表中的试题保存在文件中*/void bao_cun(const struct question *ed, FILE *saf){fclose(saf);if ((saf = fopen("wankun.dat", "w")) == NULL)//以写的方式重新打开文件 return ;while (ed) {fwrite(ed, 1, sizeof(struct question), saf);ed = ed->next;}}//得到选择题的答案(不保证是正确的答案)int GetAnswer(void){char c=0 ;//必须进行初始化,避免出现偶然性的错误fflush(stdin);while (c < 'A' || c > 'D') //确保输入的答案是A, B, C, D中的一个{cout<<"请输入正确的答案: "<<endl;cin>> c;}return c;}//回答问题,并统计答对题目数,显示得分void huida_Question(const struct question *que, int n){int i = 0, t = n;char result[1001], *p = result;for (i = 0; n--; que = que->next) {cout<<que->ask<<endl;cout<<que->answer[0]<<endl;cout<<que->answer[1]<<endl;cout<<que->answer[2]<<endl;cout<<que->answer[3]<<endl;if ((*p = que->right) == (*(p + 1) = GetAnswer()))++i;}*p = '\0';cout<<"标准答案"<<" 您的答案 "<<endl;for (p = result; *p != '\0'; )cout<<*p<<" "<<*(p+1)<<endl;cout<<"您回答了"<<t<<"道题, 答对"<<i<<"道题目, 得分:"<< (float)i / t * 100.00<<endl;}//选择菜单int MenuChoice(void){int value;cout<<" **********************************"<<endl;cout<<" * *"<<endl;cout<<" * 1 :添加选择题 *"<<endl;cout<<" * 2 :回答选择题 *"<<endl;cout<<" * 3 :退出 *"<<endl;cout<<" * *"<<endl;cout<<" **********************************"<<endl;cin>>value;return value;}4 课程设计总结:经过编写程序,检验了我们的编程的水平,从这次编程中,我发现我才学到了一点点的知识,有好多的东西都不够熟练,还需要好好的努力学习,在编写这个程序时,出现了好多的问题,经过别人的帮助和自己的认真的调试才完成,这个程序还有好多的不足,还不够美观。

2023年C语言选择题带答案

2023年C语言选择题带答案

《C语言程序设计》基础知识练习50101、在C语言源程序中,以下叙述对的的是()。

答案:CA、main函数必须位于文献的开头B、每行只能写一条语句C、程序中的一个语句可以写成多行D、每个语句的最后必须有点号50102、关于C语言的源程序的叙述中,错误的是()。

答案:CA、C语言的源程序由函数构成B、main函数可以书写在自定义函数之后C、必须包具有输入语句D、一行可以书写多个语句50103、关于C语言数据类型的叙述,对的的是()。

答案:CA、枚举类型不是基本类型B、数组不是构造类型C、变量必须先定义后使用D、不允许使用空类型50104、C程序中main函数的位置()。

答案:CA、必须在最开始B、必须在系统库函数后面C、可以在自定义函数后面D、必须在最后50105、C语言的函数体由()括起来。

答案:BA、()B、{ }C、[ ]D、/* */50106、关于C语言的叙述中,不对的的是()。

答案:DA、C程序可由一个或多个函数组成B、C程序必须包含一个main()函数C、C程序的基本组成单位是函数D、注释说明只能位于一条语句的后面50107、以下叙述不对的的是()。

答案:DA、C程序的执行总是从main函数开始B、一个C源程序必须包含一个main函数C、C语言程序的基本组成单位是函数D、在编译C程序源程序时,可发现注释中的拼写错误50108、结构化程序设计的三种基本结构是()。

答案:CA、函数结构、分支结构、判断结构B、函数结构、嵌套结构、平行结构C、顺序结构、分支结构、循环结构D、分支结构、循环结构、嵌套结构50109、对于C语言源程序,以下叙述错误的是()。

答案:CA、可以有空语句B、函数之间是平等的,在一个函数内部不能定义其它函数C、程序调试时假如没有提醒错误,就能得到对的结果D、注释可以出现在语句的前面50201、下面关于C语言用户标记符的描述,对的的是()。

答案:DA、不区分大小写B、用户标记符不能描述常量C、类型名也是用户标记符D、用户标记符可以作为变量名50202、以下()是对的的变量名。

单项选择题标准化考试系统

单项选择题标准化考试系统

摘要随着科技的逐渐进步,计算机的各类技术也正以飞速发展,我们所熟知的软件技术,也做出了一次次的创新与改良,无数种新类型的软件也逐渐向世人展示它的棱角。

当然,科学是一把双刃剑,在这些软件被创造的过程中,总会留下一些不当或者漏洞,毕竟人不是万能的,我们在开发这些软件的过程中并不能全面了解它会接触到什么样的数据,所以一个个漏洞逐渐被不法分子所发现,利用,并且对使用该软件的人造成或大或小的经济损失。

因此,越来越频繁的软件安全损失对软件的开发者提出了更高的要求,对于开发者来说,能够避免以及时修复软件出现的突发问题,才能最大限度的保证使用者的经济财产不受损失。

安全编程,是软件质量的重要保证,在软件开发和程序设计中具有重要地位。

然而,实际的软件工程中,安全隐患的出现往往来源于多个方面,给软件系统带来的危害也是多方面的。

安全问题的出现,由于原因众多,而某些安全问题又具有不间断发生,难于调试等特点,因此,很难用一个单纯的理论来完全地阐述安全编程问题。

基于这个考虑,安全编程的内容只能针对各个侧面来进行阐述,如异常情况下的安全、线程操作中的安全、数据安全加密等等。

关键词:软件,安全,C语言目录摘要 (1)第1章绪论 (1)1.1功能分析 (1)1.2系统分析 (2)第2章输入安全 (4)2.1概念 (4)2.2输入安全分析 (4)第3章内存安全 (7)3.1概念 (7)3.2内存安全分析 (7)第4章数据安全 (10)4.1概念 (10)4.2数据安全分析 (10)总结 (12)第1章绪论1.1功能分析本系统为单项选择题标准化考试系统,本系统主要是靠结构体来完成、实现的,经过实际的需求分析,采用功能强大的C语言程序运行的单项选择题标准化考试系统。

整个系统从符合操作简便、界面友好、灵活、实用、安全的要求出发,完成单项选择题标准化考试系统的全过程,包括学生信息的录入、浏览、查询、排序以及修改和删除功能,查询功能主要包括按学号查询和按姓名查询。

(完整版)C语言考试题库及答案

(完整版)C语言考试题库及答案

(完整版)C语言考试题库及答案一、选择题1. 以下哪个选项是C语言的合法标识符?A. intB. 2abcC. voidD. a+b答案:C2. 在C语言中,下列哪个选项是正确的数据类型?A. floatB. integerC. doubleD. All of the above答案:D3. 若变量定义如下:int a = 5;,则执行语句printf("%d", a++); 后,a的值是多少?A. 4B. 5C. 6D. 无法确定答案:C4. 以下哪个函数用于动态分配内存?A. malloc()B. alloc()C. new()D. calloc()答案:A5. 在C语言中,哪个运算符用于取模(取余)?A. %B. /C. &D. |答案:A以下是判断题部分:6. C语言中的数组名可以作为指向该数组首元素的指针使用。

()答案:正确7. 在C语言中,结构体变量可以作为函数的参数传递。

()答案:正确8. 在C语言中,静态存储类别的变量在程序运行期间始终占据内存空间。

()答案:正确二、填空题9. 在C语言中,定义一个整型变量需要使用关键字______。

答案:int10. 若变量定义如下:int a = 10;,则执行语句printf("%d", a--); 后,a的值是______。

答案:911. 在C语言中,用于动态分配内存的函数是______。

答案:malloc12. 在C语言中,用于释放动态分配的内存的函数是______。

答案:free13. 在C语言中,用于清空标准输入缓冲区的函数是______。

答案:getchar()三、编程题14. 编写一个C语言程序,实现以下功能:输入一个整数,输出它的阶乘。

答案:```c#include <stdio.h>int main() {int n, i;long factorial = 1;printf("Enter an integer: ");scanf("%d", &n);if (n < 0) {printf("Factorial of a negative number doesn't exist.\n");} else {for (i = 1; i <= n; i++) {factorial = i;}printf("Factorial of %d is %ld\n", n, factorial);}return 0;}```15. 编写一个C语言程序,实现以下功能:输入一个字符串,判断它是否是回文(正读和反读都一样的字符串)。

c语言考试题及答案详解

c语言考试题及答案详解

c语言考试题及答案详解一、选择题(每题2分,共20分)1. 在C语言中,以下哪个选项是合法的标识符?A. 2variableB. variable2C. variable-2D. variable$2答案:B2. C语言中,以下哪个选项不是基本数据类型?A. intB. floatC. doubleD. string答案:D3. 若int a=5; 则表达式a++的值是多少?A. 4B. 5C. 6D. 无法确定答案:B4. 下列哪个选项不是C语言中的运算符?A. +=B. ||C. &&D.答案:D5. 在C语言中,以下哪个选项是正确的字符串定义方式?A. char str[5] = "hello";B. char str[5] = {'h', 'e', 'l', 'l', 'o'};C. char str[5] = "hello"; // 错误,字符串长度超过数组大小D. char str[] = "hello";答案:D6. 以下哪个选项不是C语言中的控制语句?A. ifB. switchC. whileD. do答案:B7. 在C语言中,以下哪个选项是正确的函数定义?A. int function(int a) { return a; }B. int function a(int) { return a; }C. int function(int a) { return a; }D. int function() { return 0; }答案:C8. C语言中,以下哪个选项不是数组的初始化方式?A. int arr[] = {1, 2, 3};B. int arr[3] = {1, 2, 3};C. int arr[3] = {}; // 错误,未指定元素值D. int arr[] = {1, 2, 3, 4, 5};答案:C9. 在C语言中,以下哪个选项是正确的指针声明?A. int *ptr;B. int *ptr = NULL;C. int *ptr = 0x12345678; // 错误,地址值应为合法地址D. int *ptr = "hello";答案:B10. 下列哪个选项是C语言中正确的结构体定义?A. struct Student { int id; char name[20]; };B. struct { int id; char name[20]; } student;C. struct Student { int id; char name[20]; };D. struct { int id; char name[20]; };答案:A二、填空题(每题2分,共20分)1. 在C语言中,使用________关键字可以定义一个函数。

基础c语言试题及答案

基础c语言试题及答案

基础c语言试题及答案一、单项选择题(每题2分,共20分)1. 在C语言中,以下哪个选项不是合法的变量名?A. sumB. _sumC. 2sumD. sum2答案:C2. 下列哪个选项是C语言中的逻辑运算符?A. &&B. ||C. &&D. |答案:B3. 以下哪个选项是C语言中正确的字符串字面量?A. "Hello, World"B. 'Hello, World'C. "Hello, World\n"D. "Hello, World\"答案:A4. 在C语言中,以下哪个选项是正确的整型常量?A. 0x1AB. 0x1aC. 0x1A.5D. 0x1a.5答案:A5. 下列哪个选项是C语言中的关键字?A. intB. INTC. IntD. integer答案:A6. 在C语言中,以下哪个选项是正确的函数声明?A. void myFunction();B. void myFunction;C. int myFunction();D. int myFunction;答案:C7. 在C语言中,以下哪个选项是正确的数组声明?A. int array[5];B. int array[];C. int array;D. int [5] array;答案:A8. 在C语言中,以下哪个选项是正确的指针声明?A. int *ptr;B. int * ptr;C. int ptr*;D. int * ptr;答案:A9. 在C语言中,以下哪个选项是正确的结构体声明?A. struct {int x;float y;} Point;B. struct Point {int x;float y;};C. struct Point {int x;float y;} point;D. struct {int x;float y;} point;答案:B10. 在C语言中,以下哪个选项是正确的枚举声明?A. enum Color {Red, Green, Blue};B. enum {Red, Green, Blue} Color;C. enum Color {Red, Green, Blue} color;D. enum Color {Red, Green, Blue};答案:A二、填空题(每题3分,共15分)1. 在C语言中,使用________关键字可以定义一个函数。

C语言全部考试系统题库含答案

C语言全部考试系统题库含答案

目录目录 (1)单元练习题一 C语言基础知识 (3)一、判断题 (3)二、单项选择题 (4)三、读程序选择题 (7)四、程序填空题 (8)五、编程题..................................... 错误!未定义书签。

单元练习题二 C语言程序结构.. (9)一、判断题 (9)二、单项选择题 (9)三、读程序选择题............................ 错误!未定义书签。

四、程序填空题 (17)五、编程题.................................. 错误!未定义书签。

单元练习题三数组.. (21)一、判断题 (21)二、单项选择题 (22)三、读程序选择题............................... 错误!未定义书签。

四、程序填空题 (28)五、编程题..................................... 错误!未定义书签。

单元练习题四函数.. (33)一、判断题 (33)二、单项选择题 (34)三、读程序选择题 (40)四、程序填空题................................. 错误!未定义书签。

五、编程题..................................... 错误!未定义书签。

单元练习题五预处理................................ 错误!未定义书签。

一、判断题.................................. 错误!未定义书签。

二、单项选择题.............................. 错误!未定义书签。

三、读程序选择题............................... 错误!未定义书签。

四、程序填空题................................. 错误!未定义书签。

C语言单项选择题标准化考试系统(精品文档)_共17页

C语言单项选择题标准化考试系统(精品文档)_共17页
二、课程设计的要求与数据
1、进一步掌握和利用 C 语言进行程设计的能力; 2、进一步理解和运用结构化程序设计的思想和方法; 3、初步掌握开发一个小型实用系统的基本方法; 4、学会调试一个较长程序的基本方法; 5、学会利用流程图或 N-S 图表示算法; 6、掌握书写程序设计开发文档的能力。
三、课程设计应完成的工作
1、编写完成相应题目的程序; 2、编写课程设计报告,课程设计报告的内容应包括以下 6 个部分:
1) 需求分析:包括设计题目、设计要求以及系统功能需求分析; 2) 总体设计:包括系统总体设计框架和系统功能模块图; 3) 详细设计:包括主要功能模块的算法设计思路以及对应的工作流程图; 4) 调试分析过程描述:包括测试数据、测试输出结果,以及对程序调试过程中存在
录入;
Page 4 of 17
4
3、 试题的抽取,可以定义一个” void printNode(TestNode p,int n)”的函数,用到”Rand”函数进行 随机抽取;
4、答题方面,,则定义一个” void answer(int sum)”函数用于答题者的输入答案; 5、自动判卷,则可以定义一个” Status Match(TestNode p,char m)”函数,用来对比答题者答案和
实验 3#517
6.18 6.19 6.20 6.21
五、应收集的资料及主要参考文献
[1] 谭浩强.C程序设计(第三版)[M],北京:清华大学出版社,2005.9 [2] 谭浩强. C程序设计题解与上机指导(第三版)[M],北京:清华大学出版社,
2005.7 [3] 刘振安等.C++程序设计课程设计[M]-北京:机械工业出版社,2004.8 [4] 张淑平.C 语言程序设计学习指导,西安电子科技大学出版社,2004.6
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

青岛理工大学《C语言程序设计》题目C语言单项选择题标准化考试系统指导教师:姓名:学号:班级:专业:地点:时间:2013-7-1 至2013-7-5一、内容【设计内容】试设计一单项选择题标准化考试系统,实现试题的录入、抽取、用户的答题、系统的自动判卷等功能。

【设计要求】1、用文件保存试题库。

(每个试题包括题干、4个备选答案、标准答案)2、试题录入:可随时增加试题到试题库中3、试题抽取:每次从试题库中可以随机抽出N道题(N由键盘输入)4、答题:用户可实现输入自己的答案5、自动判卷:系统可根据用户答案与标准答案的对比实现判卷并给出成绩。

二、上机环境操作系统:windows.XP开发工具:VC6.0三、函数调用关系图图1 函数调用关系图四、各函数功能说明1.main() 主函数2.Menu() 菜单函数3.void Answer(int n,TEST * sp) 答题函数4.void Output(TEST* ,int i) 输出第n道题题目5.int TorF(TEST *sp,char m) 判卷函数6.void Input(TEST *) 题目录入函数7.void ReadfromFile(TEST* sp) 从文件中读取题目信息8.TEST * createLinkedList(TEST*sp) 创建链表9.TEST* InsertNode(TEST *head, TEST*s) 插入题目函数10.void WritetoFile(TEST* head) 保存到文件五、流程图图 2 系统总流程图图 3 Answer()函数流程图图 4 Ooutput()函数流程图图 5 TorF()函数流程图图 6 Input()函数流程图图7 ReadfromFile()函数流程图图 8 createLinkedList()函数流程图开始p ,q i=0输入n(q!=NULL&&n!=i+1)?p ,q 指针都指向下一节点i++q=NULL?输出“Not found!”将保存信息的s,插入p ,q 之间;返回头指针结束图 9 InsertNode()函数流程图真假真假六、程序运行效果图1.初始界面2.随机抽题3.答题并判卷4.插入试题5.保存到文件七、总结通过这短短5天的时间,学到了许多东西,尤其是对链表及文件的使用。

在这之前对于链表和文件的使用还不是特别明白,现在已经可以较为熟练的应用它们。

对结构体数组的使用也更加清晰了。

在做单项选择题标准化考试系统时,碰到的第一个问题就是如何从文件里读取数据,为了解决这个问题,我细心的研究了老师给的课件,以及之前写过的学生成绩管理系统V6.0,最终解决了这个问题。

碰到的第二个问题是,如何让编译器随机抽取的题目不重复,通过认真思考算法,最终得出了一个较为合理的算法。

第三个问题是,链表的使用,在做“插入试题”这一块的函数时,经常出现编译错误的提示,仔细阅读编译器提供的错误信息,并对程序进行修改,最后也成功解决了这一个问题。

这份程序在文件的读取和保存以及链表的使用方面参考了老师给的课件,并进行修改。

但是,我的程序在图形处理上基本是没有,所以界面不是特别美观。

通过网络资源,学会了清屏,system(“cls”);通过这次的课程设计,让我进一步的了解到C语言在我们日常生活中的重要性,体会到编一个对人们现实生活有用处的程序的快乐,更进一步的激发了我学习这门语言的兴趣.经过这次的训练,我相信自己以后会用更多的时间来把这门语言学好,掌握好这门必修的基础语言。

最后,在此对我的C语言老师——陈老师,表示感谢。

感谢她平时认真地帮我调试程序,并耐心地解答疑点。

在她的辅导下我从对C语言没有丝毫概念的程度到现在已经可以成功地写出一些比较像样的程序,是她开启了我的编程人生。

八、参考文献[1] 邱建华.C语言程序设计教程.东软电子出版社,2009[2] 谭浩强.C程序设计(第三版).清华大学出版社,2005[3] 邱建华.C语言程序设计随堂实训及上机指导.东北大学出版社,2007九、程序清单/*单项选择题标准化考试系统设计*/#include<stdio.h>#include<stdlib.h>#include<malloc.h>#include<time.h>#include<string.h>#define M 30typedef struct test{char problem[300];char option1[100];char option2[100];char option3[100];char option4[100];char key;struct test *next;}TEST;Menu(); //菜单函数void Answer(int n,TEST * sp); //答题函数void Output(TEST* ,int i); //输出第n道题题目int TorF(TEST *sp,char m); //判卷函数void Input(TEST *); //录入题目void ReadfromFile(TEST* sp); //从文件中读取题目信息TEST * createLinkedList(TEST*sp); //创建链表TEST* InsertNode(TEST *head, TEST*s); //插入函数void WritetoFile(TEST* head); //保存到文件int main(void){TEST test[M];TEST s;TEST * head;int item,n;while(1){Menu();scanf("%d",&item);ReadfromFile(&test);switch(item){case 1:printf("请输入答题数:");scanf(" %d",&n);Answer(n,&test);break;case 2: system("cls");Input(&s);head=createLinkedList(&test);head=InsertNode(head,&s);break;case 3:system("cls");WritetoFile(head);break;case 4:exit(0);break;default:printf("输入有误!请重新输入。

\n");}}}//菜单函数Menu(){printf("\n\t****************单项选择题标准化考试系统*********************\n");printf("\t* 1.答题并判卷*\n");printf("\t* 2.插入试题*\n");printf("\t* 3.保存到文件*\n");printf("\t* 4.退出程序*\n");printf("\t*************************************************************\n");printf("\t\t请输入选项:");}//答题函数void Answer(int n,TEST* sp){int i,j,score=0,num[M];char m;srand(time(NULL));num[0]=rand()%(M-1)+0;for(i=0;i<n;i++){loop:srand(time(NULL)); //产生真随机数num[i]=rand()%(M-1)+0;for(j=i;j>=0;j--) //保证不出现重复的题目{if(num[j]==num[j-1]) //若抽中的题重复则重新抽题{goto loop;}}Output(&sp[num[i]],i+1); //输出抽中的题目printf("请输入答案:");scanf(" %c",&m);score+=TorF(&sp[num[i]],m); //判段用户输入的答案与标准答案是否一致}printf("\n你的总成绩为:%d\n",score); //输出总成绩}void Output(TEST *sp,int i) //输出第n道题题目函数{printf("(%d) ",i);printf(" %s\n",sp->problem);printf(" A %s \n",sp->option1);printf(" B %s \n",sp->option2);printf(" C %s \n",sp->option3);printf(" D %s \n",sp->option4);}int TorF(TEST *sp,char m) //判卷函数{if(sp->key==m) //若用户输入的答案与标准答案一致,返回1 {printf("Right!\n");return 1;}else{printf("Wrong!\n"); //若用户输入的答案与标准答案不一致,返回0return 0;}}void Input(TEST *sp) //试题录入函数{printf("请输入要插入的试题信息:\n");printf("请输入题干:\n");scanf(" %s",sp->problem);printf("请输入选项A:");scanf("%s",sp->option1);printf("请输入选项B:");scanf("%s",sp->option2);printf("请输入选项C:");scanf("%s",sp->option3);printf("请输入选项D:");scanf("%s",sp->option4);printf("请输入答案:");scanf(" %c",&sp->key);}void ReadfromFile(TEST* sp) //文件读取函数{FILE * fp;int i;if((fp=fopen("test.txt","r")) == NULL ) //文件打开失败{printf("Failure to open test.txt!\n");exit(0);}for(i=0;!feof(fp); i++) //文件打开成功{fscanf(fp," %s", sp[i].problem); //将读出的数据保存在sp变量里fscanf(fp,"%s", sp[i].option1);fscanf(fp,"%s", sp[i].option2);fscanf(fp,"%s", sp[i].option3);fscanf(fp,"%s", sp[i].option4);fscanf(fp," %c", &sp[i].key);}fclose(fp); //关闭文件}TEST * createLinkedList(TEST*sp) //创建链表{int i;TEST*head=NULL,*q=NULL,*p=NULL; //定义三个变量for(i=0;i<M;i++){p= (TEST*)malloc(sizeof(TEST)); //申请内存p=&sp[i];p->next=NULL;if(i==0){head=p; //链表的表头}else{q->next=p;}q=p;}return head;}TEST* InsertNode(TEST *head, TEST*s) //插入函数{int n,i;TEST*p,*q;p=head;q=p->next;printf("请输入要在哪个节点后插入题目信息:");scanf(" %d", &n);for(i=0;q!=NULL && n!=i+1;i++) //遍历{p = p->next;q = q->next;}if(q == NULL){printf("Not found!\n");}Else //插入数据{p->next = s;s->next = q;}return head;}void WritetoFile(TEST*head) //保存到文件{FILE * fp;TEST *q;if((fp = fopen("student.txt","w")) == NULL ) //文件打开失败{printf("Failure to open file!\n");exit(0);}for(q=head;q!=NULL;q=q->next) //用链表的方式将数据保存到文件{fprintf(fp," %s\n", q->problem);fprintf(fp,"%s\n",q->option1);fprintf(fp,"%s\n",q->option2);fprintf(fp,"%s\n",q->option3);fprintf(fp,"%s\n",q->option4);fprintf(fp," %c\n",q->key);}fclose(fp); //关闭文件}。

相关文档
最新文档