×

c语言必刷经典题目

c语言必刷经典题目(C语言经典题目)

admin admin 发表于2024-02-22 04:35:43 浏览40 评论0

抢沙发发表评论

这篇文章给大家聊聊关于c语言必刷经典题目,以及C语言经典题目对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。

本文目录

C语言经典题目

1.正确的算法:如果n=3, 过河时间为A+B+C如果n《=2, 好算, 不费口舌了如果n》=4, 这个是重点:每次优先考虑把最慢两人送过河把n人中最快两人记为A,B, 最慢两人记为C,D(过河时间A《B《C《D), n人问题实质上转换为4人过河问题, 参考到4人过河时的优化, 记AB过河, A回, CD过河, B回, 为方法X, 实质是利用最快两人进行优化, 耗时A+2B+D 记AD过河, A回, AC过河, A回, 为方法y, 实质是利用最快一人来过河, 耗时2A+C+D每次比较这两个方法, 如果x快, 使用x方法, 如果y快, 则用y, 并且, 一旦某次使用y方法后, 以后都不用比较了, 全部使用y方法过河2.算法正确性证明:为什么每次先让最慢两人过河? 因为他们迟早要过河...早过晚过一样, 而晚过的话, 有可能时间不能被优化, 所以选择最先过为什么是两人, 不是三人? 因为这船一次只能两人, 三人问题和两人问题的优化一样, 所以一次考虑三人毫无意义, 同理, 三人以上不加考虑为什么某次用y过河后不用再比较xy了?先看这个例子:1 99 100 101用x方法是99+1+101+99= 300y方法是 101+1+100+1 = 203y比x快的原因是2A+C+D 《 A+2B+D, 即 A+C《2B容易想到, 从此以后A+C都会小于2B了(因为C越来越小)3.补充:算法分析就到这里了, 至于具体的程序...楼主既然是ACMer, 这个应该不困难当然, 如果楼主需要的话, 也可以给出程序

几道C语言的题目

1。c语言的变量名只能以字母或者下划线开头,以数字,下划线,字母组成,且不得与c语言关键字重合。A是关键字;B以数字开头;D含有非法字符。2.A项答案是3;B项3《=5 为真,即是1;C答案为0;D项3《5为真,3==5 为假,那么相与就为假,即是0;3.都好表达式的值就是最后一个表达式的值,再把这个值赋给x,那么x就是最后一个的值。即是32.4.原样输入,才能保证得到应得的值,《CR》是回车。5.答案该选择A吧,至于原因,楼主应该知道吧。数组的下标都是整数,只能以之类的。6。B,D都超出了数组范围。c没有数组标识。7.5.5*1+2*1+2=9.5 输出的总位数4位,1位小数。多余的小数四舍五入。

关于C语言的题目求支援 一定要对的答案

1 D , 2 B, 3 B, 4 C, 5D, 6 C, 7 B, 8 应该输入 1空格2空格3回车,题目中A,B是一样的,你是不是写错了?我是计算机专业的,你的问题都很基础,我可以保证基本全对,请选择我的答案

简单的C语言题目(10)!急!

1.D2.题目有问题吧3.B4.A5.跟4题一样的6.A7.A8.D9.提目有问题吧10.B

求c语言典型题目 可追加分!!!

二级C语言笔试模拟题32009-09-20 00:29一 、选择题 本题共得 (0) 分(1)算法的空间复杂度是指A)算法程序的长度B)算法程序中的指令条数C)算法程序所占的存储空间D)执行算法需要的内存空间 正确答案: D(2)用链表表示线性表的优点是A)便于随机存取B)花费的存储空间较顺序存储少C)便于插入和删除操作D)数据元素的物理顺序与逻辑顺序相同 正确答案: C(3)数据结构中,与所使用的计算机无关的是数据的A)存储结构B)物理结构C)逻辑结构D)物理和存储结构 正确答案: C(4)结构化程序设计主要强调的是 A)程序的规模B)程序的效率C)程序设计语言的先进性D)程序易读性 正确答案: D(5)软件设计包括软件的结构、数据接口和过程设计,其中软件的过程设计是指A)模块间的关系B)系统结构部件转换成软件的过程描述C)软件层次结构D)软件开发过程 正确答案: B(6)检查软件产品是否符合需求定义的过程称为A)确认测试B)集成测试C)验证测试D)验收测试 正确答案: A(7)数据流图用于抽象描述一个软件的逻辑模型,数据流图由一些特定的图符构成。下列图符名标识的图符不属于数据流图合法图符的是A)控制流B)加工C)数据存储D)源和潭 正确答案: A(8)应用数据库的主要目的是A)解决数据保密问题B)解决数据完整性问题C)解决数据共享问题D)解决数据量大的问题 正确答案: C(9)在数据库设计中,将E-R图转换成关系数据模型的过程属于A)需求分析阶段B)逻辑设计阶段C)概念设计阶段D)物理设计阶段 正确答案: B(10)在数据管理技术的发展过程中,经历了人工管理阶段、文件系统阶段和数据库系统阶段。其中数据独立性最高的阶段是A)数据库系统B)文件系统C)人工管理D)数据项管理 正确答案: A(11)下面四个选项中,均是不合法的用户标识符的选项是A)A P_0 doB)float la0 _AC)b-a goto intD)_123 temp int 正确答案: C(12)以下4个选项中,不能看作一条语句的是A);B)a=5,b=2.5,c=3.6;C)if(a《5);D)if(b!=5)x=2;y=6; 正确答案: D(13)下列说法错误的是A)函数调用时,函数名必须与所调用的函数名字完全相同B)实参的个数必须与形式参数的个数一致C)实参可以是表达式,在类型上必须与形参一一对应匹配D)C语言规定,函数必须先定义,后调用(函数的返回值类型为int或char时除外) 正确答案: C(14)有说明char *c〔〕={"European","Asian","American","African"};则下列叙述中正确的是A)*(c+1)=′A′B)c是一个字符型指针数组,所包含4个元素的初值分别为"European"、"Asian"、"American"和"African"C)c〔3〕表示字符串"American"的首地址D)c是包含4个元素的字符型指针数组,每个元素都是一个字符串的首地址 正确答案: D(15)当把以下4个表达式用作if语句的控制表达式时,有一个选项与其他3个选项含义不同,这个选项是A) k%2B) k%2==1C) (k%2) !=0D) !k%2==1 正确答案: D(16)若变量已正确定义并赋值,以下符合C语言语法的表达式是A)a:=b+1B)a=b=c+2C)int 18.5%3D)a=a+7=c+b 正确答案: B(17)以下叙述中正确的是A)构成C程序的基本单位是函数B)可以在一个函数中定义另一个函数C)main()函数必须放在其他函数之前D)所有被调用的函数一定要在调用之前进行定义 正确答案: A(18)设x,y,z,t均为整型变量,现有如下语句x=y=z=1;t=++x‖++y&&++z;,则执行这个语句后t的值为A)2 B)1 C)0D)不定值 正确答案: B(19)若有定义语句:intx=3,y=2,z=1;,表达式:z*=(x》y?++x:y+)的值是A)4B)0C)1D)3 正确答案: A(20)以下描述中正确的是A)由于do-while循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句B)do-while循环由do开始,用while结束,在while(表达式)后面不能写分号C)在do-while循环体中,是先执行一次循环,再进行判断D)do-while循环中,根据情况可以省略while 正确答案: C(21)阅读如下程序段#include "stdio.h"main(){ int x,a,b;scanf("%d",&x);a=b=x;for(;x!=0;){ if(x《b)b=x;if(x》a)a=x;scanf("%d",&x);}printf("a=%d,b=%d\n",a,b);}现输入如下。〔注〕 :"〕"表示空格34〕56〕23〕45〕5〕56〕7〕12〕365〕49〕48〕57〕87〕7〕6〕7569〕789〕0《Enter》输入后输出结果是A)a=7569,b=789 B)a=5,b=365C)a=7,b=789D)a=7569,b=5 正确答案: D(22)执行以下程序后,a,b的值分别为main(){ int a,b,k=4,m=6,*p1=&k,*p2=&m a=p1==&m b=(*p1)/(*p2)+7; printf("a=%d\n",a); printf("b=%d\n",b); }A)-1,5B)1,6C)0,7D)4,10 正确答案: C(23)下面说明不正确的是A)char a〔10〕="china";B)char a〔10〕,*p=a;p="china"C)char *a;a="china";D)char a〔10〕,*p;p=a="china" 正确答案: D(24)阅读下列程序段,则程序的输出结果为#include "stdio.h"#define M(X,Y)(X)*(Y)#define N(X,Y)(X)/(Y)main(){ int a=5,b=6,c=8,k; k=N(M(a,b),c); printf("%d\n",k);}A)3 B)5 C)6 D)8 正确答案: A(25)若变量已正确定义,以下while循环不断输出读入的字符,当读入回车换行符时结束循环。正确的程序段是A)while (ch=getchar()==′\N′)putchar(ch);B)while (ch=getchar())==′\N′)putchar(ch);C)while((ch=getchar())!=′\N′)putchar(ch);D)while((ch=getchar())!=′\N′)putchar(ch); 正确答案: D(26)以下函数返回a所指数组中最小的值所在的下标值fun(int *a, int n){ int i,j=0,p;p=j;for(i=j;i《n;i++)if(a〔i〕《a〔p〕);return(p);}在下划线处应填入的是A)i=pB)a〔p〕=a〔i〕C)p=jD)p=i 正确答案: D(27)下面程序的运行结果是#include《stdio.h》main(){char a〔〕="morning",t;int i,j=0;for(i=1;i《7;i++)if(a〔j〕《a〔i〕)j=i;t=a〔j〕;a〔j〕=a〔7〕;a〔7〕=a〔j〕;puts〔a〕; }A)mrgninrB)moC)moringD)morning 正确答案: B(28) 以下程序中函数sort的功能是对a数组中的数据进行由大到小的排序void sort(int a〔〕,int n){int i,j,t;for(i=0;i《n-1;i++)for(j=i+1;j《n;j++)if(a〔i〕《a〔j〕){t=a〔i〕;a〔i〕=a〔j〕;a〔j〕=t;} }main(){int aa〔10〕={1,2,3,4,5,6,7,8,9,10},i;sort(&aa〔3〕,5);for(i=0;i《10;i++)printf("%d,",aa〔i〕);printf("\n"); }程序运行后的输出结果是(28) 以下程序中函数sort的功能是对a数组中的数据进行由大到小的排序void sort(int a〔〕,int n){int i,j,t;for(i=0;i《n-1;i++)for(j=i+1;j《n;j++)if(a〔i〕《a〔j〕){t=a〔i〕;a〔i〕=a〔j〕;a〔j〕=t;} }main(){int aa〔10〕={1,2,3,4,5,6,7,8,9,10},i;sort(&aa〔3〕,5);for(i=0;i《10;i++)printf("%d,",aa〔i〕);printf("\n"); }程序运行后的输出结果是A)1,2,3,4,5,6,7,8,9,10,B)10,9,8,7,6,5,4,3,2,1,C)1,2,3,8,7,6,5,4,9,10,D)1,2,10,9,8,7,6,5,4,3, 正确答案: C(29)请阅读以下程序:#include《stdio.h》void fun(int s〔〕){static int j=0;dos〔j〕+=s〔j+1〕;while(++j《2); }main(){int k,a〔10〕={1,2,3,4,5};for(k=1;k《3;k++)fun(a);for(k=0;k《5;k++)printf("%d",a〔k〕); }上面程序的输出是A)34756 B)23445 C)35745D)12345 正确答案: C(30)下面程序的输出结果是#include《stdio.h》#include《string.h》main(){char *p1="abc",*p2="ABC",str〔50〕= "xyz";strcpy(str+2,strcat(p1,p2));printf("%s\n",str); }A)xyzabcABCB)zabcABCC)xyabcABCD)yzabcABC 正确答案: C(31)下列程序的运行结果为#include《stdio.h》void abc(char*str){int a,b;for(a=b=0;str〔a〕!=′\0′;a++)if(str〔a〕!=′c′)str〔b++〕=str〔a〕;str〔b〕=′\0′;}void main(){char str〔〕="abcdef";abc(str);printf("str〔〕=%s",str); }A)str〔〕=abdefB)str〔〕=abcdefC)str〔〕=aD)str〔〕=ab 正确答案: A(32)不合法的main函数命令行参数表示形式是A)main(int a,char *c〔〕)B)main(int arc,char **arv)C)main(int argc,char *argv)D)main(int argv,char *argc〔〕) 正确答案: C(33)阅读下列程序,则运行结果为#include "stdio.h"fun(){ staticint x=5; x++; return x;}main(){ int i,x;for(i=0;i《3;i++)x=fun();printf("%d\n",x);}A)5 B)6 C)7D)8 正确答案: D(34)若有以下定义和语句struct a{ int n,m;};struct a st〔3〕={{1,20},{2,19},{3,21}};struct a *p=st;则以下错误的引用是A)(p++)-》n;B)st〔0〕.n;C)(*p).n;D)p=&st.m; 正确答案: D(35)已知 int a=1,b=3则a^b的值为A)3B)1C)2D)4 正确答案: C二 、填空题 本题共得 (0) 分(1)数据的逻辑结构有线性结构和 【1】两大类。正确答案: 1.(非线性结构)(2)顺序存储方法是把逻辑上相邻的结点存储在物理位置 【2】的存储单元中。 正确答案: 1.(相邻)(3)一个类可以从直接或间接的祖先中继承所有属性和方法。采用这个方法提高了软件的【3】 。正确答案: 1.(可重用性)(4)软件工程研究的内容主要包括:【4】技术和软件工程管理。正确答案: 1.(软件开发)(5)关系操作的特点是 【5】 操作。正确答案: 1.(集合)(6)现有如下定义:struct aa{int a;float b;char c;}*p;现需用malloc函数动态的申请一个struct aa类型大小的空间(由p指向),则定义的语句为: 【6】 。正确答案: 1.(p=(struct aa *)malloc(sizeof(struct aa));)(7)下列程序的输出结果是16.00,请填空。main(){int a=9, b=2;float x=【7】, y=1.1,z;z=a/2+b*x/y+1/2;printf("%5.2f\n", z ); }正确答案: 1.(6.6)(8)下面程序的功能是:计算1~10之间的奇数之和与偶数之和,请填空。#include《stdio.h》main(){ int a,b,c, i;a=c=0;for(i=0;i《=10;i+=2){a+=i;【8】;c+=b; }printf("偶数之和=%d\n",a);printf("奇数之和=%d\n",c-11); }正确答案: 1.(b=I+1)(9)下面程序的运行结果是【9】。#include《stdio.h》#define SIZE 12main(){ char s〔SIZE〕; int i;for(i=0;i《SIZE;i++)s〔i〕=′A′+i+321;sub(s,7,SIZE-1);for(i=0;i《SIZE;i++)printf("%c",s〔i〕);printf("\n"); }sub(char*a,int t1,int t2){ char ch;while (t1《t2){ ch=*(a+t1);*(a+t1)=*(a+t2);*(a+t2)=ch;t1++;t2--; } }正确答案: 1.(a b c d e f g l k j I h)(10)下面函数的功能是将一个字符串的内容颠倒过来,请填空。void fun(char str〔〕){int i,j, k;for(i=0,j= 【10】;i《j;i++,j--){ k=str〔i〕;str〔i〕=str〔j〕;str〔j〕=k; } }正确答案: 1.(strlen(str)-1)(11)阅读下面程序,则程序的执行结果为【11】。#include "stdio.h"fun(int k,int *p){ int a,b;if(k==1‖k==2)*p=1;else{ fun(k-1,&a);fun(k-2,&b);*p=a+b; } }main(){ int x;fun(6,&x);printf("%d\n",x); }正确答案: 1.(8)(12)设有定义"struct {int a; float b; char c;} abc, *p_abc=&abc",则对结构体成员a的引用方法可以是abc.a和p_abc【12】a。正确答案: 1.(-》)(13)以下程序是求矩阵a,b的和,结果存入矩阵c中,并按矩阵形式输出,请填空。#include《stdio.h》main(){int a〔3〕〔4〕={{3,-2,7,5},{1,0,4,-3},{6,8,0,2}};int b〔3〕〔4〕={{-2,0,1,4},{5,-1,7,6},{6,8,0,2}};int i,j,c〔3〕〔4〕;for(i=0;i《3;i++)for(j=0;j《4;j++)c〔i〕〔j〕=【13】;for(i=0;i《3;i++){for(j=0;j《4;j++)printf("%3d",c〔i〕〔j〕);printf("\n"); } }正确答案: 1.(a)(14)以下涵数rotate的功能是:将a所指N行N列的二维数组中的最后一行放到b所指二维数组的第0列中,把a所指二维数组中的第0行放到b所指二维数组的最后一列中,b所指二维数组中其他数据不变。#defineN4void rotade(inta〔〕〔N〕,intb〔〕〔N〕){int i,j;for(i=0;i<N;i++){b〔i〕〔N-1〕=【14】;【15】=a〔N-1〕〔i〕; } }正确答案: 1.(a)

几道简单的C语言题目,加分啦

  1. 输出15。(5,4)是逗号表达式,结果是最后一个值,也就是4,所以x=3,y=4,然后计算x*=y+1,等价于x = x * (y+1) 等于15.

  2. typedef int* a; typedef的用法记住一条,如果去掉typedef,定义的是变量,加上typedef就是定义“不加typedef的时候的这个变量的“类型

  3. 255,ff,char的大小肯定是1字节,最大为255,输出两种格式,十进制和十六进制,分别是255和ff

OK,关于c语言必刷经典题目和C语言经典题目的内容到此结束了,希望对大家有所帮助。