c语言入门简单题目及答案_第1页
c语言入门简单题目及答案_第2页
c语言入门简单题目及答案_第3页
c语言入门简单题目及答案_第4页
c语言入门简单题目及答案_第5页
已阅读5页,还剩67页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

c语言入门简单题目及答案C语言入门简单题目及答案一、C语言基础选择题(每题5分)1.以下哪个是C语言的有效标识符?A.2variableB.variable-nameC._variableD.int2.C语言的基本数据类型不包括以下哪个?A.intB.floatC.stringD.char3.在C语言中,以下哪个运算符具有最高的优先级?A.+B.C.=D.()4.以下哪个是正确的C语言注释方式?A.<!--注释内容-->B.//注释内容C./注释内容/D.注释内容5.在C语言中,以下哪个函数用于输出内容到控制台?A.input()B.print()C.printf()D.output()6.以下哪个是正确的C语言变量声明方式?A.variablex=10;B.intx=10;C.declarex=10;D.x=10;7.在C语言中,以下哪个循环语句会至少执行一次循环体?A.forB.whileC.do-whileD.loop8.以下哪个是正确的C语言数组声明方式?A.array[5]int;B.intarray[5];C.intarray=[5];D.arrayint[5];9.在C语言中,以下哪个函数用于从键盘读取输入?A.get()B.read()C.scanf()D.input()10.以下哪个是正确的C语言字符串声明方式?A.stringstr="hello";B.charstr="hello";C.charstr[]="hello";D.strchar[]="hello";二、C语言填空题(每题5分)1.C语言程序执行的入口点是________________函数。2.在C语言中,使用________________关键字可以定义常量。3.C语言中的关系运算符"大于等于"是________________。4.在C语言中,使用________________关键字可以定义函数。5.C语言中的逻辑与运算符是________________。6.在C语言中,使用________________关键字可以动态分配内存。7.C语言中的取地址运算符是________________。8.在C语言中,使用________________关键字可以定义结构体类型。9.C语言中的文件结束标记是________________。10.在C语言中,使用________________函数可以关闭文件。三、C语言程序阅读题(每题10分)1.请阅读以下C语言代码,写出程序运行后的输出结果:```cinclude<stdio.h>intmain(){inta=5,b=3;intc=a+b;intd=a-b;printf("c=%d,d=%d",c,d);return0;}```2.请阅读以下C语言代码,写出程序运行后的输出结果:```cinclude<stdio.h>intmain(){inti;for(i=1;i<=5;i++){printf("%d",i);}return0;}```3.请阅读以下C语言代码,写出程序运行后的输出结果:```cinclude<stdio.h>intmain(){intarr[]={1,2,3,4,5};intsum=0;for(inti=0;i<5;i++){sum+=arr[i];}printf("sum=%d",sum);return0;}```4.请阅读以下C语言代码,写出程序运行后的输出结果:```cinclude<stdio.h>intmain(){inta=10,b=20;if(a>b){printf("aisgreater");}elseif(a<b){printf("bisgreater");}else{printf("aequalsb");}return0;}```5.请阅读以下C语言代码,写出程序运行后的输出结果:```cinclude<stdio.h>intadd(intx,inty){returnx+y;}intmain(){intresult=add(5,3);printf("result=%d",result);return0;}```四、C语言简单编程题(每题15分)1.编写一个C语言程序,实现两个整数相加并输出结果。2.编写一个C语言程序,判断一个整数是奇数还是偶数。3.编写一个C语言程序,输出1到100之间所有偶数的和。4.编写一个C语言程序,实现简单的计算器功能,可以完成加、减、乘、除四种运算。5.编写一个C语言程序,实现数组元素排序(使用冒泡排序算法)。五、C语言程序改错题(每题10分)1.以下程序试图计算1到10的和,但存在错误,请找出并改正:```cinclude<stdio.h>intmain(){intsum=0;for(i=1;i<=10;i++){sum+=i;}printf("Sum=%d",sum);return0;}```2.以下程序试图输出字符串"HelloWorld!",但存在错误,请找出并改正:```cinclude<stdio.h>intmain(){charstr[]="HelloWorld!";printf(str);return0;}```3.以下程序试图交换两个变量的值,但存在错误,请找出并改正:```cinclude<stdio.h>intmain(){inta=5,b=10;a=b;b=a;printf("a=%d,b=%d",a,b);return0;}```4.以下程序试图读取用户输入的整数并输出,但存在错误,请找出并改正:```cinclude<stdio.h>intmain(){intnum;scanf("%d",num);printf("Youentered:%d",num);return0;}```5.以下程序试图使用函数计算两个数的乘积,但存在错误,请找出并改正:```cinclude<stdio.h>multiply(intx,inty){returnxy;}intmain(){intresult=multiply(3,4);printf("Result=%d",result);return0;}```六、C语言综合应用题(每题20分)1.编写一个C语言程序,实现简单的学生成绩管理系统,可以输入、查询、修改和删除学生信息(包括学号、姓名和成绩)。2.编写一个C语言程序,实现简单的图书管理系统,可以添加图书、查询图书、删除图书和显示所有图书信息(包括书名、作者和价格)。3.编写一个C语言程序,实现简单的银行账户管理系统,可以开户、存款、取款和查询余额。4.编写一个C语言程序,实现简单的通讯录管理系统,可以添加联系人、查找联系人、删除联系人和显示所有联系人信息(包括姓名、电话号码和邮箱)。5.编写一个C语言程序,实现简单的文本文件加密和解密功能,可以对文本文件进行简单的加密(如字符移位)和解密操作。答案及解析一、C语言基础选择题1.答案:C解析:在C语言中,标识符的命名规则是以字母或下划线开头,后面可以跟字母、数字或下划线。选项A以数字开头,不合法;选项B包含连字符,不合法;选项D是C语言的关键字,不能用作标识名;选项C符合标识符命名规则。2.答案:C解析:C语言的基本数据类型包括int(整数)、float(单精度浮点数)、double(双精度浮点数)和char(字符)。string不是C语言的基本数据类型,它是一个在C++中引入的概念,在C语言中通常使用字符数组来表示字符串。3.答案:D解析:在C语言中,运算符的优先级从高到低为:括号()>算术运算符(,/,%)>算术运算符(+,-)>关系运算符(>,<,>=,<=,==,!=)>逻辑运算符(!,&&,||)>赋值运算符(=)。因此,括号()具有最高的优先级。4.答案:C解析:C语言支持两种注释方式:单行注释(以//开头)和多行注释(以/开头,以/结尾)。选项A是HTML的注释方式;选项B是单行注释,在C语言中也支持;选项C是多行注释,是C语言的标准注释方式;选项D不是有效的C语言注释方式。在C语言中,单行注释是从C99标准开始引入的,而多行注释从C语言一开始就存在。5.答案:C解析:在C语言标准库中,printf()函数用于格式化输出内容到控制台。选项A和D不是C语言标准库中的函数;选项B在C语言中不存在,Python中才有print()函数;选项C是正确的C语言输出函数。使用printf()时,需要包含stdio.h头文件。6.答案:B解析:在C语言中,变量声明需要指定数据类型,然后是变量名,可以同时初始化。选项A没有指定数据类型;选项B是正确的变量声明和初始化方式;选项C使用了不存在的declare关键字;选项D没有指定数据类型,且变量声明应该在使用前进行。7.答案:C解析:在C语言中,for循环和while循环都是"当型"循环,即先判断条件,如果条件成立才执行循环体,所以循环体可能一次都不执行。而do-while循环是"直到型"循环,会先执行一次循环体,然后再判断条件,所以循环体至少会执行一次。选项D中的loop不是C语言中的循环关键字。8.答案:B解析:在C语言中,数组的声明格式为:数据类型数组名[数组大小]。选项A的语法不正确;选项B是正确的数组声明方式;选项C的语法不正确;选项D的语法不正确。在C语言中,数组的大小必须在编译时确定,可以是常量或常量表达式。9.答案:C解析:在C语言中,scanf()函数用于从标准输入(通常是键盘)读取输入。选项A和D不是C语言标准库中的函数;选项B不是C语言标准库中的函数;选项C是正确的C语言输入函数。使用scanf()时,需要包含stdio.h头文件。10.答案:C解析:在C语言中,字符串通常使用字符数组来表示。选项A使用了不存在的string类型;选项B使用char类型只能存储单个字符;选项C是正确的字符串声明方式,使用字符数组;选项D的语法不正确。在C语言中,字符串以'\0'作为结束标志,所以字符数组的大小至少要比字符串长度多1,以存储结束标志。二、C语言填空题1.答案:main解析:在C语言中,程序执行的入口点是main函数。每个C程序都必须有一个main函数,程序从main函数开始执行,到main函数结束终止。main函数的返回类型通常是int,表示程序的退出状态,0表示正常退出,非0表示异常退出。2.答案:const解析:在C语言中,使用const关键字可以定义常量。常量是指在程序运行期间其值不能被改变的变量。例如:constintMAX_SIZE=100;定义了一个名为MAX_SIZE的常量,其值为100,之后不能再修改它的值。使用常量可以提高代码的可读性和可维护性,避免使用"魔法数字"(即代码中直接出现的没有明确含义的数字)。3.答案:>=解析:在C语言中,关系运算符用于比较两个值的大小。"大于等于"运算符是>=,用于判断左边的值是否大于或等于右边的值,如果条件成立则返回1(真),否则返回0(假)。其他关系运算符包括:>(大于)、<(小于)、<=(小于等于)、==(等于)、!=(不等于)。注意:在C语言中,=是赋值运算符,而==是等于运算符,初学者容易混淆。4.答案:int(或其他返回类型)解析:在C语言中,使用返回类型关键字(如int、float、char等)可以定义函数。函数是C语言的基本构建块,用于实现特定的功能。例如:intadd(intx,inty){returnx+y;}定义了一个名为add的函数,它接受两个int类型的参数,返回它们的和。函数可以没有返回值,此时使用void作为返回类型。5.答案:&&解析:在C语言中,逻辑与运算符是&&,用于连接两个条件表达式,只有当两个条件都为真时,整个表达式才为真。其他逻辑运算符包括:||(逻辑或)和!(逻辑非)。例如:if(a>0&&b>0){...}表示只有当a和b都大于0时,条件才成立。逻辑运算符常用于组合多个条件,实现复杂的判断逻辑。6.答案:malloc解析:在C语言中,使用malloc函数可以动态分配内存。malloc函数在stdlib.h头文件中声明,它接受一个参数,表示要分配的字节数,返回一个指向分配内存的指针。例如:intptr=(int)malloc(5sizeof(int));分配了可以存储5个int类型数据的内存空间。使用动态内存可以在运行时根据需要分配内存,提高内存使用效率,但需要注意及时释放不再使用的内存,避免内存泄漏。7.答案:&解析:在C语言中,取地址运算符是&,用于获取变量的内存地址。例如:inta=10;intptr=&a;获取变量a的地址并赋给指针ptr。取地址运算符常用于指针操作,通过指针可以间接访问和修改变量的值。理解指针和地址是掌握C语言的关键之一,指针使得C语言可以直接操作内存,实现高效的程序。8.答案:struct解析:在C语言中,使用struct关键字可以定义结构体类型。结构体是一种用户自定义的数据类型,可以包含不同类型的数据成员。例如:structStudent{intid;charname[50];floatscore;};定义了一个名为Student的结构体类型,包含id、name和score三个成员。结构体可以用于组织相关的数据,使程序更加清晰和模块化。9.答案:EOF解析:在C语言中,文件结束标记是EOF(EndofFile),它是一个在stdio.h中定义的宏,通常值为-1。EOF用于表示已经到达文件的末尾,没有更多的数据可以读取。例如:while((c=fgetc(fp))!=EOF){...}读取文件中的字符,直到文件结束。EOF是一个重要的概念,特别是在处理文件输入时,需要正确判断文件结束条件。10.答案:fclose解析:在C语言中,使用fclose函数可以关闭文件。fclose函数在stdio.h头文件中声明,它接受一个文件指针参数,表示要关闭的文件。例如:fclose(fp);关闭文件指针fp指向的文件。及时关闭文件是一个良好的编程习惯,可以释放系统资源,确保数据被正确写入文件。在程序结束前,应该关闭所有打开的文件。三、C语言程序阅读题1.答案:c=8,d=2解析:程序中定义了两个整数变量a和b,分别初始化为5和3。然后计算c=a+b=5+3=8,d=a-b=5-3=2。最后使用printf函数输出c和d的值,格式为"c=8,d=2"。注意:printf函数中的格式化字符串"%d"用于输出整数,实际输出的值会替换格式说明符。2.答案:12345解析:程序中使用for循环,从i=1开始,每次循环i增加1,直到i大于5。在循环体中,使用printf函数输出i的值,并在后面输出一个空格。因此,程序会依次输出1、2、3、4、5,每个数字后面有一个空格。注意:循环结束后,printf函数会输出一个换行符,使光标移动到下一行。3.答案:sum=15解析:程序中定义了一个整型数组arr,初始化为{1,2,3,4,5},以及一个整型变量sum,初始化为0。然后使用for循环遍历数组,将每个元素加到sum上。循环结束后,sum的值为1+2+3+4+5=15。最后使用printf函数输出sum的值,格式为"sum=15"。4.答案:bisgreater解析:程序中定义了两个整型变量a和b,分别初始化为10和20。然后使用if-else语句判断a和b的大小关系。由于a(10)小于b(20),所以条件a>b不成立,跳过第一个if分支;条件a<b成立,所以执行第二个if分支,输出"bisgreater"。注意:if-else语句中,如果某个条件成立,则执行对应的分支,然后跳过其他分支。5.答案:result=8解析:程序中定义了一个add函数,接受两个整型参数,返回它们的和。在main函数中,调用add函数,传入参数5和3,将返回值赋给result变量。add函数计算5+3=8,所以result的值为8。最后使用printf函数输出result的值,格式为"result=8"。注意:函数调用时,参数的个数和类型必须与函数定义一致。四、C语言简单编程题1.答案:```cinclude<stdio.h>intmain(){inta,b,sum;printf("请输入两个整数:");scanf("%d%d",&a,&b);sum=a+b;printf("两数之和为:%d",sum);return0;}```2.答案:```cinclude<stdio.h>intmain(){intnum;printf("请输入一个整数:");scanf("%d",&num);if(num%2==0){printf("%d是偶数",num);}else{printf("%d是奇数",num);}return0;}```3.答案:```cinclude<stdio.h>intmain(){intsum=0;for(inti=2;i<=100;i+=2){sum+=i;}printf("1到100之间所有偶数的和为:%d",sum);return0;}```4.答案:```cinclude<stdio.h>intmain(){floatnum1,num2;charop;printf("请输入一个运算符(+,-,,/):");scanf("%c",&op);printf("请输入两个数字:");scanf("%f%f",&num1,&num2);switch(op){case'+':printf("结果:%f+%f=%f",num1,num2,num1+num2);break;case'-':printf("结果:%f-%f=%f",num1,num2,num1-num2);break;case'':printf("结果:%f%f=%f",num1,num2,num1num2);break;case'/':if(num2!=0){printf("结果:%f/%f=%f",num1,num2,num1/num2);}else{printf("错误:除数不能为0");}break;default:printf("错误:无效的运算符");}return0;}```5.答案:```cinclude<stdio.h>voidbubbleSort(intarr[],intn){for(inti=0;i<n-1;i++){for(intj=0;j<n-i-1;j++){if(arr[j]>arr[j+1]){//交换元素inttemp=arr[j];arr[j]=arr[j+1];arr[j+1]=temp;}}}}intmain(){intarr[100],n,i;printf("请输入数组元素个数:");scanf("%d",&n);printf("请输入数组元素:");for(i=0;i<n;i++){scanf("%d",&arr[i]);}bubbleSort(arr,n);printf("排序后的数组:");for(i=0;i<n;i++){printf("%d",arr[i]);}return0;}```五、C语言程序改错题1.错误:在for循环中使用了未声明的变量i。改正:```cinclude<stdio.h>intmain(){intsum=0;for(inti=1;i<=10;i++){sum+=i;}printf("Sum=%d",sum);return0;}```2.错误:printf函数的参数格式不正确,应该使用格式化字符串。改正:```cinclude<stdio.h>intmain(){charstr[]="HelloWorld!";printf("%s",str);return0;}```3.错误:简单的赋值方式无法实现变量值的交换。改正:```cinclude<stdio.h>intmain(){inta=5,b=10,temp;temp=a;a=b;b=temp;printf("a=%d,b=%d",a,b);return0;}```4.错误:scanf函数的参数中,变量前缺少取地址运算符&。改正:```cinclude<stdio.h>intmain(){intnum;scanf("%d",&num);printf("Youentered:%d",num);return0;}```5.错误:函数定义缺少返回类型。改正:```cinclude<stdio.h>intmultiply(intx,inty){returnxy;}intmain(){intresult=multiply(3,4);printf("Result=%d",result);return0;}```六、C语言综合应用题1.答案:```cinclude<stdio.h>include<string.h>defineMAX_STUDENTS100structStudent{intid;charname[50];floatscore;};voidaddStudent(structStudentstudents[],intcount){if(count>=MAX_STUDENTS){printf("学生数量已达上限,无法添加\n");return;}printf("请输入学号:");scanf("%d",&students[count].id);printf("请输入姓名:");scanf("%s",students[count].name);printf("请输入成绩:");scanf("%f",&students[count].score);(count)++;printf("学生添加成功\n");}voiddisplayStudents(structStudentstudents[],intcount){printf("学号\t姓名\t成绩\n");for(inti=0;i<count;i++){printf("%d\t%s\t%.2f\n",students[i].id,students[i].name,students[i].score);}}voidsearchStudent(structStudentstudents[],intcount){intid,found=0;printf("请输入要查询的学号:");scanf("%d",&id);for(inti=0;i<count;i++){if(students[i].id==id){printf("学号:%d\n姓名:%s\n成绩:%.2f\n",students[i].id,students[i].name,students[i].score);found=1;break;}}if(!found){printf("未找到学号为%d的学生\n",id);}}voidupdateStudent(structStudentstudents[],intcount){intid,found=0;printf("请输入要修改的学生学号:");scanf("%d",&id);for(inti=0;i<count;i++){if(students[i].id==id){printf("请输入新的姓名:");scanf("%s",students[i].name);printf("请输入新的成绩:");scanf("%f",&students[i].score);printf("学生信息修改成功\n");found=1;break;}}if(!found){printf("未找到学号为%d的学生\n",id);}}voiddeleteStudent(structStudentstudents[],intcount){intid,found=0;printf("请输入要删除的学生学号:");scanf("%d",&id);for(inti=0;i<count;i++){if(students[i].id==id){found=1;for(intj=i;j<count-1;j++){students[j]=students[j+1];}(count)--;printf("学生删除成功\n");break;}}if(!found){printf("未找到学号为%d的学生\n",id);}}intmain(){structStudentstudents[MAX_STUDENTS];intcount=0,choice;do{printf("\n学生成绩管理系统\n");printf("1.添加学生\n");printf("2.显示所有学生\n");printf("3.查询学生\n");printf("4.修改学生信息\n");printf("5.删除学生\n");printf("0.退出\n");printf("请选择操作:");scanf("%d",&choice);switch(choice){case1:addStudent(students,&count);break;case2:displayStudents(students,count);break;case3:searchStudent(students,count);break;case4:updateStudent(students,count);break;case5:deleteStudent(students,&count);break;case0:printf("感谢使用,再见\n");break;default:printf("无效的选择,请重新输入\n");}}while(choice!=0);return0;}```2.答案:```cinclude<stdio.h>include<string.h>defineMAX_BOOKS100structBook{chartitle[100];charauthor[50];floatprice;};voidaddBook(structBookbooks[],intcount){if(count>=MAX_BOOKS){printf("图书数量已达上限,无法添加\n");return;}printf("请输入书名:");scanf("%s",books[count].title);printf("请输入作者:");scanf("%s",books[count].author);printf("请输入价格:");scanf("%f",&books[count].price);(count)++;printf("图书添加成功\n");}voiddisplayBooks(structBookbooks[],intcount){printf("书名\t作者\t价格\n");for(inti=0;i<count;i++){printf("%s\t%s\t%.2f\n",books[i].title,books[i].author,books[i].price);}}voidsearchBook(structBookbooks[],intcount){charkeyword[100];intfound=0;printf("请输入搜索关键词:");scanf("%s",keyword);for(inti=0;i<count;i++){if(strstr(books[i].title,keyword)!=NULL||strstr(books[i].author,keyword)!=NULL){printf("书名:%s\n作者:%s\n价格:%.2f\n",books[i].title,books[i].author,books[i].price);found=1;}}if(!found){printf("未找到包含关键词的图书\n");}}voiddeleteBook(structBookbooks[],intcount){chartitle[100];intfound=0;printf("请输入要删除的图书书名:");scanf("%s",title);for(inti=0;i<count;i++){if(strcmp(books[i].title,title)==0){found=1;for(intj=i;j<count-1;j++){books[j]=books[j+1];}(count)--;printf("图书删除成功\n");break;}}if(!found){printf("未找到书名为%s的图书\n",title);}}intmain(){structBookbooks[MAX_BOOKS];intcount=0,choice;do{printf("\n图书管理系统\n");printf("1.添加图书\n");printf("2.显示所有图书\n");printf("3.搜索图书\n");printf("4.删除图书\n");printf("0.退出\n");printf("请选择操作:");scanf("%d",&choice);switch(choice){case1:addBook(books,&count);break;case2:displayBooks(books,count);break;case3:searchBook(books,count);break;case4:deleteBook(books,&count);break;case0:printf("感谢使用,再见\n");break;default:printf("无效的选择,请重新输入\n");}}while(choice!=0);return0;}```3.答案:```cinclude<stdio.h>include<string.h>defineMAX_ACCOUNTS100structAccount{intaccountNumber;charname[50];floatbalance;};voidcreateAccount(structAccountaccounts[],intcount){if(count>=MAX_ACCOUNTS){printf("账户数量已达上限,无法创建\n");return;}accounts[count].accountNumber=1000+count;printf("请输入账户持有人姓名:");scanf("%s",accounts[count].name);accounts[count].balance=0;(count)++;printf("账户创建成功,您的账户号码是:%d\n",accounts[count-1].accountNumber);}voiddeposit(structAccountaccounts[],intcount){intaccountNumber;floatamount;intfound=0;printf("请输入账户号码:");scanf("%d",&accountNumber);for(inti=0;i<count;i++){if(accounts[i].accountNumber==accountNumber){found=1;printf("请输入存款金额:");scanf("%f",&amount);if(amount>0){accounts[i].balance+=amount;printf("存款成功,当前余额:%.2f\n",accounts[i].balance);}else{printf("存款金额必须大于0\n");}break;}}if(!found){printf("未找到账户号码为%d的账户\n",accountNumber);}}voidwithdraw(structAccountaccounts[],intcount){intaccountNumber;floatamount;intfound=0;printf("请输入账户号码:");scanf("%d",&accountNumber);for(inti=0;i<count;i++){if(accounts[i].accountNumber==accountNumber){found=1;printf("请输入取款金额:");scanf("%f",&amount);if(amount>0){if(amount<=accounts[i].balance){accounts[i].balance-=amount;printf("取款成功,当前余额:%.2f\n",accounts[i].balance);}else{printf("余额不足,当前余额:%.2f\n",accounts[i].balance);}}else{printf("取款金额必须大于0\n");}break;}}if(!found){printf("未找到账户号码为%d的账户\n",accountNumber);}}voidcheckBalance(structAccountaccounts[],intcount){intaccountNumber;intfound=0;printf("请输入账户号码:");scanf("%d",&accountNumber);for(inti=0;i<count;i++){if(accounts[i].accountNumber==accountNumber){found=1;printf("账户号码:%d\n",accounts[i].accountNumber);printf("账户持有人:%s\n",accounts[i].name);printf("当前余额:%.2f\n",accounts[i].balance);break;}}if(!found){printf("未找到账户号码为%d的账户\n",accountNumber);}}intmain(){structAccountaccounts[MAX_ACCOUNTS];intcount=0,choice;do{printf("\n银行账户管理系统\n");printf("1.创建账户\n");printf("2.存款\n");printf("3.取款\n");printf("4.查询余额\n");printf("0.退出\n");printf("请选择操作:");scanf("%d",&choice);switch(choice){case1:createAccount(accounts,&count);break;case2:deposit(accounts,count);break;case3:withdraw(accounts,count);break;case4:checkBalance(accounts,count);break;case0:printf("感谢使用,再见\n");break;default:printf("无效的选择,请重新输入\n");}}while(choice!=0);return0;}```4.答案:```cinclude<stdio.h>include<string.h>defineMAX_CONTACTS100structContact{charname[50];charphone[20];charemail[50];};voidaddContact(structContactcontacts[],intcount){if(count>=MAX_CONTACTS){printf("联系人数量已达上限,无法添加\n");return;}printf("请输入姓名:");scanf("%s",contacts[count].name);printf("请输入电话号码:");scanf("%s",contacts[count].phone);printf("请输入邮箱:");scanf("%s",contacts[count].email);(count)++;printf("联系人添加成功\n");}voiddisplayContacts(structContactcontacts[],intcount){printf("姓名\t电话号码\t邮箱\n");for(inti=0;i<count;i++){printf("%s\t%s\t%s\n",contacts[i].name,contacts[i].phone,contacts[i].email);}}voidsearchContact(structContactcontacts[],intcount){charkeyword[50];intfound=0;printf("请输入搜索关键词:");scanf("%s",keyword);for(inti=0;i<count;i++){if(strstr(contacts[i].name,keyword)!=NULL||strstr(contacts[i].phone,keyword)!=NULL||strstr(contacts[i].email,keyword)!=NULL){printf("姓名:%s\n电话号码:%s\n邮箱:%s\n",contacts[i].name,contacts[i].phone,contacts[i].email);found=1;}}if(!found){printf("未找到包含关键词的联系人\n");}}voiddeleteContact(structContactcontacts[],intcount){charname[50];intfound=0;printf("请输入要删除的联系人姓名:");scanf("%s",name);for(inti=0;i<count;i++){if(strcmp(contacts[i].name,name)==0){found=1;for(intj=i;j<count-1;j++){contacts[j]=contacts[j+1];}(count)--;printf("联系人删除成功\n");break;}}if(!found){printf("未找到姓名为%s的联系人\n",name);}}intmain(){structContactcontacts[MAX_CONTACTS];intcount=0,choice;do{printf("\n通讯录管理系统\n");printf("1.添加联系人\n");printf("2.显示所有联系人\n");printf("3.搜索联系人\n");printf("4.删除联系人\n");printf("0.退出\n");printf("请选择操作:");scanf("%d",&choice);switch(choice){case1:addContact(contacts,&count);break;case2:displayContacts(contacts,count);break;case3:searchContact(contacts,count);break;case4:deleteContact(contacts,&count);break;case0:printf("感谢使用,再见\n");break;default:printf("无效的选择,请重新输入\n");}}while(choice!=0);return0;}```5.答案:```cinclude<stdio.h>include<string.h>voidencryptFile(charfilename,intshift){FILEinputFile,outputFile;charch;charoutputFilename[100];//构造输出文件名strcpy(outputFilename,filename);strcat(outputFilename,".encrypted");//打开文件inputFile=fopen(filename,"r");if(inputFile==NULL){printf("无法打开文件%s\n",filename);return;}outputFile=fopen(outputFilename,"w");if(outputFile==NULL){printf("无法创建加密文件\n");fclose(inputFile);return;}//加密文件内容while(

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论