c语言套题

合集下载

C语言套题

C语言套题

C语言套题一.填空题1.已知I=5;写出语句a=--i;执行后整型变量a的值是()2.设x=5>1+2,x的值为( )3.Int x=2,y=2,z=0;则表达式x= =y>z的值为( )4.下面程序输出的结果是( )int a=12;a=a&0377;printf(“%\n”,a)5.当a=3,b=2,c=1;时,执行以下程序段后a=( )if(a>b) a=b; if(b>c) b=c; else c=b; c=a;6.若用变量均已正确定义,则执行下面程序段后的输出结果是( ) for(I=0;I<2;I++) printf(“YES”); printf(“\n”);7.若有定义:char c=?\010?;则变量c中包含的字符个数为( )8.C语言源程序的基本单位是( )9.将数组a的首地址赋给真正变量p的语句是( )10. 语言中调用()函数来打开文件。

二.1.一个c语言程序由()a.一个主程序和若干子程序组成b.函数组成c.若干过程组成d.若干子程序组成2.在一个c程序中main函数()a.必须出现所有函数之前b.可以出现在任何地方c.必须出现在所有函数之后d.必须出现在固定位置3.在c语言中,int、char、short三种类型数据在内存中所指用的字节数()a.由用户自定义b.均为2个字节c.是任意的d.由所用机器的机器字长决定4.若kw为int型变量,则以下程序段执行的结果是()k=8567;printf(“|%6d\n|”,k);a.格式描述符不合法,输出无定值b.输出为|%6D|c.输出为| 8567|d.输出为|8567 |5.以下不符合c语言语法的赋值语句是()a.a=1,b=2b.j=j+1;c.a=b=5;d.y=(a=3,6*5);6.c语言的if语句嵌套时,if与else的配对关系是()a.每个else这是与它上面的最近的并且没有配对的if配对b.每个else总是与最外层的if配对c.每个else与if配对是任意的d.每个else总是与它上面的if配对7.执行语句for(I=1;I++<4;);后变量I的值是( )a.3b.4c.5d.不确定8.下列语句不正确的是( )a.static char a[2]={1,2};b.static char a[2]={…1?,?2?};c.static char a[2]={…1?,?2?,?3?};d.static char a[2]={…1?};9.若输入ab,程序运行结果为( )main(){ static char a[2]; scanf(“%s”,a); printf(“%c,%c”,a[1],a[2]); }a.a,bb.a,c.b,d.程序出错10.若有cha r s1[]=”abc”,s2[20],*t=s2;gets(t);则下列语句中能够实现当字符串s1大于字符串s2时,输出s2的语句是( )a.if(strcmp(s1,s1)>0)puts(s2);b.if(strcmp(s2,s1)>0)puts(s2);c.if(strcmp(s2,t)>0)puts(s2);d.if(strcmp(s1,t)>0)puts(s2);11.用户定义的函数不可以调用的函数是( )a.非整形返回值的b.本文件外的c.main函数d.本函数下面定义的12.int a[10]={1,2,3,4,5,6,7,8};int *p;p=&a[0];p[3]的值是( )a.2b.3c.4d.不确定13.若有int I=3,*p;p=&I下列语句中输出结果为3的是( )a.printf(“%d”,&p);b.printf(“%d”,*i);c.printf(“%d”,*p);d.printf(“%d”,p);14.以下各选项企图说明一种新的类型名,其中正确的是()a.typedef v1 int;b.typedef v2= int;c.typedef int v3;d.typedef v4:int;15.不仅可将c源程序存在磁盘上,还可将数据按类型分别以什么形式存在磁盘上()a.内存b.缓冲区c.文件d.寄存器一.1.4 2.1 3.0 4.14 5.2 6.YESYES 7.1 8.函数9.p=a;p&[0];10.fopen \fopen()二.1.~.5 BBDCA. 6~10ACCCD.11.~/doc/58663faa5022aaea988f0f49.htm l CCC【程序填空】答案:str2 *p1 strcopy(str1,str2,m)功能:将一个字符串中下标为m的字符开始的全部字符复制成为另一个字符串。

c语言真题20套

c语言真题20套

第一套下列正确的标识符是(C ).A、a+bB、6aC、_doD、%y执行以下程序段后,输出结果和a的值是(B)。

int a=10; printf("%d",a++);A、11 和10B、10 和11C、11 和11D、10 和10以下不正确的if语句形式是(B)。

A、if(x<y) {x++;y++;}B、if(x!=y) scanf("%d",&x) else scanf("%d",&y);C、if(x>y&&x!=y);D、if(x==y) x+=y;int a=3,b=2,c=1; if(a>b && b>c)a=b; else a=c;则a的值为(C)。

A、1B、0C、2D、3对for(表达式1; ;表达式3)可以理解为(C ).A、for(表达式1;表达式3;表达式3)B、for(表达式1;表达式1;表达式3)C、for(表达式1;1;表达式3)D、for(表达式1;0;表达式3)运行结果是" 11 12"的程序段是:请在A处填写正确内容(B )。

for(i=1;i<=2;i++) ___A___A、for(j=1;j<=2;j++)printf("%3d",10*i+j);break;B、{for(j=1;j<=2;j++)printf("%3d",10*i+j);break;}C、for(j=1;j<=2;j++)printf("%3d",10*i+j);continue;D、{for(j=1;j<=2;j++)printf("%3d",10*i+j);continue;}static char str[10]="China";数组元素个数为(D)。

c语言经典题

c语言经典题

以下是一些经典的C语言题目:
1. 计算斐波那契数列的第n项
2. 实现冒泡排序
3. 实现选择排序
4. 实现插入排序
5. 实现快速排序
6. 实现归并排序
7. 实现二分查找
8. 实现字符串反转
9. 实现字符串连接
10. 实现字符串比较
11. 实现字符串分割
12. 实现链表操作(插入、删除、遍历等)
13. 实现二叉树操作(插入、查找、遍历等)
14. 实现队列操作(入队、出队、查看队首等)
15. 实现栈操作(入栈、出栈、查看栈顶等)
16. 实现哈希表操作(插入、查找、删除等)
17. 实现矩阵乘法
18. 实现矩阵转置
19. 实现矩阵求逆
20. 实现链表反转
21. 实现链表合并
22. 实现链表排序
23. 实现链表查找
24. 实现链表删除
25. 实现链表插入
26. 实现字符串匹配算法(KMP算法)
27. 实现回文判断算法(Manacher算法)
28. 实现字符串分割算法(Strtok算法)
29. 实现字符串转换算法(Base64算法)
30. 实现字符串加密算法(Caesar算法)。

C语言20套题

C语言20套题

C语⾔20套题1、⽤getchar()函数读⼊两个字符给ch1和ch2,然后⽤putchar()输出这两个字符。

#include"stdio.h"main(){char ch1,ch2;printf("请输⼊两个字符,中间加空格:");ch1=getchar();putchar(ch1);getchar();ch2=getchar();putchar(ch2);}2、编程,随机输⼊半径、输出园的直径、周长、⾯积(保留⼩数点后2位)。

#include"stdio.h"#define PI 3.1415main(){float r,s,d,b;printf("请输⼊半径:");scanf("%f",&r);b=2*r;s=PI*r*r;d=2*r*PI;printf("周长,直径,⾯积,分别为:%5.2f,%5.2f,%5.2f\n",d,b,s);}3、编程,从键盘输⼊两个整数给变量a、b,输出a、b的值及它们交换后的值。

#include"stdio.h"main(){int a,b,c,d;printf("请输⼊两个整数:");scanf("%d,%d",&a,&b);c=b;d=a;printf("%d,%d\n%d,%d\n",a,b,c,d);}4、从键盘输⼊两个数,输出其中最⼤值。

#include"stdio.h"main(){float a,b,c;printf("请输⼊两个数:");scanf("%f,%f",&a,&b);c=a>b?a:b;printf("max=%f\n",c);}5、从键盘输⼊⼀个字符,判断其是否为⼤写字母,如果是⼤写则将其转换为⼩写字母,否则不转换,然后输出最后的字符。

C语言6套试题

C语言6套试题

C语言6套试题第一套试题一、单项选择题(15个小题,每题2分,共30分):1.一个C语言程序的执行是从_____。

A.main函数开始,直到main 函数结束B.第一个函数开始,直到最后一个函数结束C.第一个函数开始,直到最后一个语句结束D.main函数开始,直到最后一个函数结束2.正确的自定义标识符是_____。

A.某_2B.a-bC.2umD.$1233.下面程序的运行结果是_____。

#defineF(某)某某某voidmain(){inta=2,b=1;prinft(“%d\\n”,F(a+b));}A.3B.5C.8D.94.读以下程序段,判断a的值为_____。

int某p,a=10,b=1;p=&a;a=某p+b;A.12B.10C.11D.编译出错5.根据以下说明语句,则下面的叙述中不正确的是_____。

tructtudent{intnum;charname[10];intcore;}tu;A.truct是定义结构体类型的关键字B.tu是结构体变量名C.num,name,core都是结构体成员名D.tu是结构体类型名6.已知字母A的ASCII码为十进制数65,变量ch1为字符型,则执行语句ch1=‘A’+‘5’-‘2’;后,ch1中的值是_____。

A.DB.67C.一个不确定的值D.C7.以下哪种方法不能对一维数组进行正确的初始化_____。

A.inta[]={1,2,3};B.inta[5]={};C.inta[5]=(1,2,3,4,5);D.inta[]={2,3,4某5,6};8.已正确定义字符变量ch1,下面能正确赋值的是_____。

A.ch1=“a”;B.ch1=‘a’;C.ch1=“C语言程序设计”;D.ch1=‘C语言程序设计’;9.逗号表达式(a=3某4,a某4),a+5的值是_____。

A.53B.17C.20D.4810.设n为float型,m为int型,则以下能实现将n中的数值保留小数点后两位,第三位进行四舍五入的表达式是_____。

c语言试卷集(10套)-试题及答案

c语言试卷集(10套)-试题及答案

c语言试卷集(10套)-试题及答案C语言试卷集(10套)-试题及答案试卷一一、选择题(每题2分,共20分)1. C语言中,用于表示逻辑“真”的值是()。

A. 0B. 1C. -1D. 任意非零值答案:B2. 下列哪个选项是C语言中的合法变量名?()A. 2variableB. variable2C. variable_2D. variable!答案:C3. C语言中,用于定义一个整型数组的语句是()。

A. int array[10];B. int [10] array;C. int 10 array;D. int array=10;答案:A4. 下列哪个选项是C语言中的合法字符串常量?()A. "Hello"B. 'Hello'C. "HelloD. Hello答案:A5. C语言中,用于表示逻辑“假”的值是()。

A. 0B. 1C. -1D. 任意非零值答案:A6. 下列哪个选项是C语言中的合法浮点数常量?()A. 3.14B. 314.C. .314D. 3.14E答案:A7. C语言中,用于定义一个整型变量的语句是()。

A. int x;B. var x;C. x int;D. int = x;答案:A8. 下列哪个选项是C语言中的合法字符常量?()A. 'A'B. "A"C. 'AB'D. "AB"答案:A9. C语言中,用于定义一个字符数组的语句是()。

A. char array[10];B. char [10] array;C. char 10 array;D. char array=10;答案:A10. C语言中,用于表示字符常量的是()。

A. 'A'B. "A"C. AD. "A"答案:A二、填空题(每题3分,共15分)1. C语言中,用于定义一个整型变量并初始化为0的语句是()。

C语言200道练习题及答案

C语言200道练习题及答案
数组与字符串练习题
一维数组
题目1
题目2
题目3
题目4
求一维数组中的最大值 和最小值。
将一维数组中的元素逆 序存放。
查找一维数组中指定的 元素,并返回其下标。
求一维数组中所有元素 的和。
二维数组
题目5
题目6
求二维数组中所有元素的最大值和最小值 。
将二维数组转置,即行列互换。
题目7
题目8
查找二维数组中指定的元素,并返回其位 置。
C语言200道练习题 及答案
汇报人:XX
目录
• 基础知识练习题 • 数组与字符串练习题 • 函数与模块化练习题 • 指针与内存管理练习题 • 数据结构与算法练习题 • 综合应用练习题
01
基础知识练习题
变量与数据类型
声明整型变量并赋值
int a = 10;
声明字符型变量并赋值
char c = 'A';
代码优化
通过减少不必要的计算、消 除冗余代码等方式对代码进 行优化。
并行计算与多线程
了解并行计算和多线程的基 本概念,探索在程序中应用 并行计算和多线程技术提高 性能的可能性。
THANKS
感谢观看
掌握如何使用malloc()、calloc() 等函数在堆区动态分配内存空间

动态内存释放函数
了解如何使用free()函数释放之前 分配的内存空间,以避免内存泄漏 。
内存分配失败处理
熟悉在动态内存分配过程中,如何 处理分配失败的情况,如检查返回 值是否为NULL等。
05
数据结构与算法练习题
结构体与联合体
01
掌握如何定义指向函数的指针变量,以及如何通过函数指针调
用函数。

c语言题库(60道题)

c语言题库(60道题)

第一题:编写一个售货机(POS)计算程序,用于水果店售货员算账。

苹果每千克 3.2元,梨每千克1.96元,香蕉每千克3元,樱桃每千克24元。

某顾客购买1.5斤苹果,2斤梨,3斤香蕉,1.5斤樱桃,付给售货员100元。

要求规范输出这位顾客购买各类水果的名称,对应的重量和应付价钱,显示顾客所付款项,输出应找回的款项。

#include<stdio.h>main(){float apple=1.5,pear=2.0,banana=3.0,cherry=1.5;float cost,pay=100.0,retern;cost=3.2*apple+1.96*pear+3.0*banana+24.0*cherry;retern=pay-cost;printf("LIST\t重量:\t价钱:\n");printf("apple\t1.5\t%.2f\n",3.2*apple);printf("pear\t2.0\t%.2f\n",1.96*pear);printf("banana\t3.0\t%.2f\n",3.0*banana);printf("cherry\t1.5\t%.2f\n",24.0*cherry);printf("pay=%.2fRMB\ncost=%.2fRMB\nretern=%.2fRMB\n",pay,cost,retern);}第二题:编写一个程序,对输入的一组整数,分别统计其中正整数和负整数的个数(0作为结束标志)。

#include<stdio.h>main(){int a[]={12,1648,500,-322,41,-15,126,-45,0,45,-356},i=0,m=0,n=0;for(i=0;a[i]!=0;i++){if(a[i]<0)m++;else if(a[i]>0)n++;}printf("%d\n%d\n",m,n);}第三题:统计100-500之间各个数字之和为9的三位数,输出这些三位数。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

模拟试题(一)1. 填空题请补充函数fun(),该函数的功能是:把从主函数中输入的字符串str2接在字符串str1的后面。

例如:str1=“How do”,str2=“ you do?”,结果输出:How do you do?注意:部分源程序给出如下。

请勿改动主函数main和其他函数中的任何内容,仅在函数fun的横线上填入所编写的若干表达式或语句。

试题程序:#include<stdio.h>#include<conio.h>#define N 40void fun(char *str1,char *str2){int i=0;char *p1=str1;char *p2=str2;while(【1】)i++;for( ;【2】;i++)*(p1+i)=【3】;*(p1+i)='\0';}main(){char str1[N],str2[N];clrscr();printf("*****Input the string str1 &str2*****\n");printf(" \nstr1:");gets(str1);printf(" \nstr2:");gets(str2);printf("**The string str1 & str2**\n");puts(str1);puts(str2);fun(str1,str2);printf("*****The new string *****\n");puts(str1);}答案及评析:【1】*(p1+i) 【2】*p2 【3】*p2++【解析】填空1:变量i用来记录字符串str1的长度,当指针指到字符串str1结束标志符…\0'时,while循环结束,变量i停止累加。

填空2:指针p2指向字符串str2,通过for循环将字符串str2接在str1后面,循环结束的条件是指针p2所指的字符是字符串结束标志符…\0'。

填空3:指针p2最初指向字符串str2的首字符,通过自加1,使指针p2依次向后移动,指向str2的各个字符,实现将字符串str2接在str1后面的功能。

2. 改错题下列给定程序中,函数fun()的作用是:将字符串tt中的小写字母都改为对应的大写字母,其他字符不变。

例如,若输入"edS,dAd",则输出"EDS,DAD"。

请改正程序中的错误,使它能得到正确结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。

试题程序:#include <stdio.h>#include <string.h>#include <conio.h>/**********************found***********************/char fun(char tt[]){int i;for(i=0;tt[i];i++){/**********************found***********************/if((tt[i]>='A')&&(tt[i]<= 'Z'))tt[i]-=32;}return(tt);}main(){int i;char tt[81];clrscr();printf("\nPlease enter a string: ");gets(tt);printf("\nThe result string is: \n%s",fun(tt));}答案及评析:(1)错误:char fun(char tt[])正确:char *fun(char tt[])(2)错误:if((tt[i]>='A')&&(tt[i]<= 'Z'))正确:if((tt[i]>='a')&&(tt[i]<= 'z'))【解析】错误1:函数的返回值是字符串的首地址,是指针类型,所以在函数名前要加'*'号。

错误2:题目要求将小写字母改为大写字母,所以if语句的判断条件是小写字母。

3. 编程题请编写函数fun(),该函数的功能是:移动一维数组中的内容,若数组中有n个整数,要求把下标从p到n-1(p≤n-1)的数组元素平移到数组的前面。

例如,一维数组中的原始内容为1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,p的值为6。

移动后,一维数组中的内容应为7,8,9,10,10,11,12,13,14,15,1,2,3,4,5,6。

注意:部分源程序给出如下。

请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。

试题程序:#include <stdio.h>#define N 80void fun(int *w, int p, int n){}main(){int a[N]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};int i, p, n=15;printf("The original data:\n");for(i=0;i<n;i++)printf("%3d",a[i]);printf("\n\nEnter p: ");scanf("%d",&p);fun(a,p,n);printf("\nThe data after moving:\n");for(i=0;i<n;i++)printf("%3d",a[i]);printf("\n\n");}答案及评析:void fun(int *w, int p, int n){int i,j,t;for(i=p;i<=n-1;i++) /*循环右移n-p次*/{t=w[n-1];for(j=n-2;j>=0;j--) /*实现循环右移*/w[j+1]=w[j];w[0]=t;}}【解析】本题采用"循环右移"的算法。

和我们在前面分析的稍有不同的是,一个是整型数组,一个是字符型数组。

模拟试题(二)1.填空题请补充函数fun(),该函数的功能是求一维数组x[N]的平均值,并对所得结果进行四舍五入(保留两位小数)。

例如:当x[10]={15.6,19.9,16.7,15.2,18.3,12.1,15.5,11.0,10.0,16.0},结果为:avg=15.030000。

注意:部分源程序给出如下。

请勿改动主函数main和其他函数中的任何内容,仅在函数fun的横线上填入所编写的若干表达式或语句。

试题程序:#include<stdio.h>#include<conio.h>double fun(double x[10]){int i;long t;double avg=0.0;double sum=0.0;for(i=0;i<10;i++)【1】;avg=【2】;t=【3】;avg=(double)t/100;return avg;}main(){double avg,x[10]={15.6,19.9,16.7,15.2,18.3,12.1,15.5,11.0,10.0,16.0};int i;clrscr();printf("\nThe original data is :\n");for(i=0;i<10;i++)printf("%6.1f",x[i]);printf("\n\n");avg=fun(x);printf("average=%f\n\n",avg);}答案及评析:【1】sum+=x[i] 【2】avg*1000 【3】(avg+5)/10【解析】填空1:通过for循环求出10个数的累加和,存于变量sum中。

填空2:为了实现四舍五入保留两位小数的功能,应将平均值先扩大1000倍。

填空3:将平均值加上5,再除以10,实现四舍五入的功能。

2. 改错题下列给定程序中,函数fun()的功能是:先从键盘上输入一个3行3列的矩阵的各个元素的值,然后输出主对角线元素之积。

请改正函数fun()中的错误,使它能得出正确的结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。

试题程序:#include <stdio.h>int fun(){int a[3][3],mul;int i,j;mul=1;for (i=0;i<3;i++){/**********************found***********************/for (i=0;j<3;j++)scanf("%d",&a[i][j]);}for(i=0;i<3;i++)/**********************found***********************/mul=mul*a[i][j];printf("Mul=%d\n",mul);}main(){fun();}答案及评析:(1)错误:for (i=0;j<3;j++)正确:for (j=0;j<3;j++)(2)错误:mul=mul*a[i][j];正确:mul=mul*a[i][i];【解析】错误1:循环结构中,要给变量j赋初值0。

错误2:主对角元素的行号和列号相等,所以参加乘法的是a[i][i],而不是a[i][j]。

3. 编程题学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写函数fun(),它的功能是:把分数最低的学生数据放在h所指的数组中。

注意:分数低的学生可能不只一个,函数返回分数最低学生的人数。

注意:部分源程序给出如下。

请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。

试题程序:#include <stdio.h>#define N 16typedef struct{ char num[10];int s ;}STREC;int fun (STREC *a, STREC *b){}main (){STREC s[N]={{"GA005",82},{"GA003",75},{"GA002",85},{"GA004",78},{"GA001",95},{"GA007",62},{"GA008",60},{"GA006",85},{"GA015",83},{"GA013",94},{"GA012",78},{"GA014",97},{"GA011",60},{"GA017",65},{"GA018",60},{"GA016",74}};STREC h[N];int i, n;FILE *out;n=fun(s,h);printf("The %d lowest score :\n",n);for (i=0; i<n; i++)printf("%s %4d\n",h[i].num,h[i].s); /*输出最低分学生的学号和成绩*/printf("\n");out=fopen("out19.dat", "w");fprintf(out, "%d\n",n);for(i=0; i<n; i++);fprintf(out, "%4d\n ",h[i].s);fclose(out);}答案及评析:int fun (STREC *a, STREC *b){int i,j=0,min=a[0].s;for(i=0;i<N;i++)if(min>a[i].s)min=a[i].s; /*找出最小值*/for(i=0;i<N;i++)if(min==a[i].s)b[j++]=a[i]; /*找出成绩与min相等的学生的记录,存入结构体b中*/return j; /*返回最低成绩的学生人数*/}【解析】该程序使用循环嵌套,第1个for语句的作用是找出最小值。

相关文档
最新文档