c语言编程题库100题的题

C语言试题库_百度百科
清除历史记录关闭
声明:百科词条人人可编辑,词条创建和修改均免费,绝不存在官方及代理商付费代编,请勿上当受骗。
C语言试题库
《C语言试题库》是一款Android平台的应用。
C语言试题库应用介绍
基于历年试题,利用统计分析的方法,科学地做出结论并预测以后的出题动向,是本书的一大特色。本书可以保证既不漏掉考试必需的知识点,又不加重考生备考负担,使考生轻松、愉快地掌握知识点并领悟二级C语言考试的真谛。“一书在手,过关无忧”。试题涉及历次考试内容的各个方面。 基于历年试题,利用统计分析的方法,科学地做出结论并预测以后的出题动向,是本书的一大特色。本书可以保证既不漏掉考试必需的知识点,又不加重考生备考负担,使考生轻松、愉快地掌握知识点并领悟二级C语言考试的真谛。“一书在手,过关无忧”。试题涉及历次考试内容的各个方面。
C语言试题库支持版本
Android2.2及以上
清除历史记录关闭一道C语言的题 网上的答案太多 不知道哪个是对的
[问题点数:50分]
一道C语言的题 网上的答案太多 不知道哪个是对的
[问题点数:50分]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
2014年 总版技术专家分年内排行榜第二
2013年 总版技术专家分年内排行榜第三
2014年10月 C/C++大版内专家分月排行榜第三2014年4月 C/C++大版内专家分月排行榜第三
2014年10月 C/C++大版内专家分月排行榜第三2014年4月 C/C++大版内专家分月排行榜第三
2014年 总版技术专家分年内排行榜第二
2013年 总版技术专家分年内排行榜第三
2013年3月 C/C++大版内专家分月排行榜第三
匿名用户不能发表回复!|2017年9月全国计算机二级C语言真题及答案发布通知
来源:  9:30:21 【】 
请广大考生密切关注网,及时获取2017年9月全国计算机二级C语言考试真题及答案!
2017年9月全国计算机二级C语言考试真题及答案发布通知
  2017年9月全国计算机二级考试于<FONT color=#ff日-26日举行。衷心地祝愿各位考生成功通过考试!
  会在考后第一时间发布2017年9月全国计算机二级C语言考试真题及答案,请广大考生收藏!
  另外,2017年9月成绩、合格标准一般于11月份公布,届时,请广大考生密切关注计算机等考频道,我们会在考后及时发布2017、、等信息。
扫描/长按二维码帮助考试通关
2017等考考试报名信息
2017等考各科通关技巧
2017各科最新预测试卷
2017等考各科真题答案
微信搜索""了解更多考试资讯、下载备考资料
  相关推荐:
文章责编:wangmeng& 看了本文的网友还看了
?&&( 9:25:21)?&&( 9:23:21)?&&( 9:26:21)?&&( 9:28:21)?&&( 9:24:21)?&&( 9:29:21)
? ?   ? ?   ? ?   ? ?   ? ?
? ?   ? ?   ?
?   ? ?    ? ?   ? ?   ? ?   ? ?
? ?   ? ?
实用工具 |
| 大全 | 大全
     |
版权声明:如果网所转载内容不慎侵犯了您的权益,请与我们联系,我们将会及时处理。如转载本内容,请注明出处。
Copyright & 2004- 网 All Rights Reserved 中国科学院研究生院权威支持(北京) 电 话:010- 传 真:010-
在线模拟试题
考证通关杀器
考试最新资讯
一次通关技巧您所在位置: &
&nbsp&&nbsp&nbsp&&nbsp
很好C语言习题集,超全,都做了提升几个等级.doc 60页
本文档一共被下载:
次 ,您可全文免费在线阅读后下载本文档。
&#xe600;下载提示
1.本站不保证该用户上传的文档完整性,不预览、不比对内容而直接下载产生的反悔问题本站不予受理。
2.该文档所得收入(下载+内容+预览三)归上传者、原创者。
3.登录后可充值,立即自动返金币,充值渠道很便利
你可能关注的文档:
··········
··········
C语言习题集一.填空题
1.C程序是由构成的,一个C程序中至少包含 。因此, 是C程序的基本单位。2.C程序注释是由 和 所界定的文字信息组成的。.函数体一般包括 和 。二.判断题
1.一个C程序的执行总是从该程序的main函数开始,在main函数最后结束。
2.main函数必须写在一个C程序的最前面。 【 】
3.一个C程序可以包含若干的函数。【 】
4.C程序的注释部分可以出现在程序的任何位置,它对程序的编译和运行不起任何作用。但是可以增加程序的可读性。【 】
5.C程序的注释只能是一行。【 】
6.C程序的注释不能是中文文字信息。【 】
8.可以使用Turbo C来编译和连接一个C程序。【 】
9.可以使用Turbo C来运行一个C程序。【 】
10.可以使用Turbo C来实时调试(即动态调试)一个C程序。【 】三.简答题
1. 写出一个C程序的基本结构。
2. 简要叙述使用Turbo C 2.0编译和运行一个程序的步骤。
四.编程题
1. 提高题:参照课本例1.1,试编写一个C程序,输出如下信息。(提示:使用键盘上的一些符号)。
2. 提高题:试编写一个C程序,输出如下信息。
????? 试试看,可以输出其他组合图案吗?
一.选择题
1合法的常量是 。
2、 合法的常量是 。A) ‘’
B) ‘\84’
3、是C语言提供的合法的数据类型关键字。
A) Float B) signed C) integer D)Char在以下各组标识符中,合法的标识符是。
(1)A)B01 B)table_1 C) 0_t D) k%
(2)A)Fast_ B) void C)pbl D)&book&
(3)A)xy_ B)longdouble C)*p D)CHAR属于合法的C语言长整型常量的是 。
A)5876273 B)0L C)2E10 D)(long)5876273下面选项中,是合法整型量的是 。A)160 B)-0xcdC)-01 D)-0x48a7、判断int
x = 0xaffbc;x的结果是 。
A)赋值非法
B) C)为affb D)为ffbc下面选项中,均是合法浮点数的是 。
A)+1e+1 B)-60
C)123e D)-e3
5e-9.4 12e-4 1.2e-.4 .8e-4
B)-8e5 +2e-1 5.e-0在C语言中,要求参加运算的数必须时整数的运算符是 。
A)/ B)* C)% D) =
10、在C语言中,字符型数据在内存中以 形式存放。
A)原码 B)BCD码 C)反码 D)ASCII码11、下列语句中,符合语法的赋值语句是 。
A)a=7+b+c=a+7; B)a=7+b++=a+7;
C)a=7+b,b++,a+7;
D)a=7+b,c=a+7;12、是非法的C语言转义字符。
A)‘\b’ B)‘\0xf’
C)‘\037’ D)‘\’’13、对于语句:f=(3.0,4.0,5.0),(2.0,1.0,0.0);的判断中, 是正确的。
A)语法错误 B)f为5.0 C)f为0.0 D)f为2.014、与代数式 不等价的C语言表达式是。
A)x*y/u*v B)x*y/u/v C)x*y/(u*v) D)x/(u*v)*y15、在C语言中,数字029是一个。
A)八进制数 B)十六进制数 C)十进制数 D)非法数16、C语言中整数-8在内存中的存储形式为 。
A)1000 B)000
C)000 D)011117、对于char cx=’ \039’;语句,正确的是。
A)不合法 B)cx的值是C)cx的值为四个字符 D)cx的值为三个字符18、若int k=7,x=12;则能使值为3的表达式是 。
A)x%=(k%=5) B)x%=(k-k%5)
C)x%=k-k%5 D)(x%=k)-(k%=5)19、为了计算s=10!(即10的阶乘),则s变量应定义为 。
A)int B)unsigned C)long D)以上三种类型均可以下所列的C语言常量中,错误的是。
A)0xFF B)1.2e0.5 C)2L D)’\72’21、假定x和y为double型,则表达式x=2,y=x+3/2的值是 。
A)3.500000 B)3 C)2.000000 D)3.、设变量n为float型,m为int类型,则以下能实现将n中的数值保留小数点后两位,第三位进行四舍五入运算的表达式是 。
正在加载中,请稍后...526 人阅读
标签:至少1个,最多5个
#include &stdio.h&
void swap (int &a, int &b)
int main()
int x=5, y=3;
swap (x, y);
printf ("%d,%d",x,y);
#include &stdio.h&
void swap (int *ap, int *bp)
int main()
int a=5, b=3;
swap (&a, &b);
printf ("%d,%d",a,b);
#include &stdio.h&
int main()
int monthdays[] = {
31, 28, 31, 30,
31, 30, 31, 31,
30, 31, 30, 31
int year, month, days,
int buf[42];
scanf ( "%d-%d", &year,&month );
if((year%4==0) && (year%100 || year%400==0)) monthdays[1]++;
days = (year-1)*365 + year/4 - year/100 + year/400;
for(int i=0; i&month-1; i++) days += monthdays[i];
weekday = days%7;
for(int i=0; i&42; i++) buf[i] = 0;
for(int i=1,j= i&=monthdays[month-1]; i++,j++) buf[j] =
printf("% 13d年%d月\n", year,month);
printf("日
四 五 六 \n");
for(int j=0; j&6; j++) {
for(int i=0; i&7; i++)
printf ( "%02d ", buf[j*7+i] );
printf("\n");
字符串比较
#include &stdio.h&
#include &stdlib.h&
int strcmp (char *S1, char *S2)
for (int i=0; (S1[i]&&S2[i])||(S1[i]!=S2[i]); i++)
if(S1[i]&S2[i])
if(S1[i]&S2[i])
return -1;
/***********************************************************/
int main()
char *S1="aaaa";
char *S2="aaaaaaa";
printf ("%d", strcmp ( S1, S2 ));
查找字符串中字符
#include &stdio.h&
#include &stdlib.h&
int strchr (char *S, char c)
for (int i=0; S[i]; i++)
if(S[i]==c)
return -1;
/***********************************************************/
int main()
char *S="xyz";
char c='z';
printf ("%d", strchr ( S, c ));
字符串比较加限制长度
#include &stdio.h&
#include &stdlib.h&
int strcmp (char *S1, char *S2, int n)
for (int i=0; ((S1[i]&&S2[i])||(S1[i]!=S2[i]))&&(i&n); i++)
if(S1[i]&S2[i])
if(S1[i]&S2[i])
return -1;
/***********************************************************/
int main()
char *S1 ="aaaa";
char *S2 ="aaaaaaa";
int n = 4;
printf ("%d", strcmp ( S1, S2, n ));
#include &stdio.h&
#include &stdlib.h&
char *strncpy (char *S1, char *S2, int n)
for (i=0; S2[i] && i&n; i++)
S1[i] = S2[i];
S1[i] = '\0';
return S1;
/***********************************************************/
int main()
char *S2 = "abcde";
char S1[6];
printf ("%s", strncpy ( S1, S2, 4 ));
#include &stdio.h&
#include &stdlib.h&
#include &string.h&
int main()
int a[]={1,4,5,8,9};
int alen = sizeof(a)/sizeof(a[0]);
int b[]={2,3,6,7,10};
int blen = sizeof(b)/sizeof(b[0]);
int c[256];
int clen = 0;
int i=0, j=0;
while(i&alen && j&blen) {
c[clen++] = a[i]&b[j] ? b[j++] : a[i++];
while(i&alen) c[clen++] = a[i++];
while(j&blen) c[clen++] = b[j++];
for (int l=0; l& l++) printf("%d ", c[l]);
printf("\n");
#include &stdio.h&
#include &string.h&
int bsearch (char *a[], char *v, int begin, int end)
for (int i=(begin+end+1)/2; i& i=i)
switch (strcmp (a[i], v))
case 1: end=i;
case -1: begin=i;
return -1;
int main()
char *s[] = {"abort", "broad", "count", "discount", "enough", "fire", "good", "hire", "inspect", "jump", "kick", "help"};
printf("%d\n", bsearch(s, "fire", 0, 11));
#include &stdio.h&
#include &stdlib.h&
typedef int D
struct Node
struct Node *
struct Node *
typedef struct Node *PN
PNode createNode(Data data)
PNode p = (PNode)malloc(sizeof(struct Node));
printf("Out of memory!\n");
p-&left = NULL;
p-&right = NULL;
void appendNode(PNode &btree, Data data)
if(!btree)
btree = createNode(data);
appendNode(data & btree-&data ? btree-&left : btree-&right, data);
void preOrder(PNode btree, void (*func)(PNode))
if(!btree)
func(btree);
preOrder(btree-&left, func);
preOrder(btree-&right, func);
void inOrder(PNode btree, void (*func)(PNode))
if(!btree)
inOrder(btree-&left,func);
func(btree);
inOrder(btree-&right,func);
void postOrder(PNode btree, void (*func)(PNode))
if(!btree)
postOrder(btree-&left, func);
postOrder(btree-&right, func);
func(btree);
void freeNode(PNode btree)
postOrder(btree, (void (*)(PNode))free);
/**********************************************************************/
void printNode(PNode p)
printf("%d ", p-&data);
int main()
Data a[]={8,7,15,30,2,4,6};
int length = sizeof(a)/sizeof(a[0]);
PNode btree = NULL;
for(int i=0; i& i++)
appendNode(btree, a[i]);
inOrder(btree, printNode);
printf("\n");
freeNode(btree);
#include &stdio.h&
void w(int a[3], int v)
a[2] = v%10; v/=10;
a[1] = v%10; v/=10;
int p(int a[9])
int c[10]={1, 0, 0, 0, 0, 0, 0, 0, 0, 0};
for (int i=0; i&9; i++)
if(c[a[i]]) return 0;
c[a[i]] = 1;
int main()
for (int i=123; i&=329; i++)
w(a+3, 2*i);
w(a+6, 3*i);
if(p(a)) printf ("%d %d %d\n", i, 2*i, 3*i);
#include &stdio.h&
#include &stdlib.h&
unsigned long fibonacci(unsigned int n)
switch(n) {
return fibonacci(n-1)+fibonacci(n-2);
int main()
printf("%ld", fibonacci(42));
#include &stdio.h&
#include &stdlib.h&
unsigned long fibonacci(unsigned int n)
static unsigned long F[100] = {1, 1};
static int N = 2;
while(n &= N) {
F[N] = F[N-1]+F[N-2];
return F[n];
int main()
printf("%ld", fibonacci(82));
#include &stdio.h&
#include &stdlib.h&
void p(char x, int y)
for (int i=0; i&y; i++)
printf("%c", x);
int main()
for (int i=1; i&=n; i+=2)
p(' ', (n-i)/2);
p('*', i);
printf("\n");
#include &stdio.h&
#include &stdlib.h&
int f(int x)
int i=x%10;
int main()
int i=-1385;
printf("%d",f(i));
#include &stdio.h&
#include &stdlib.h&
void out(int count, int limit)
printf(count &= limit ? " *" : "
int main()
int max = 0, count[26];
for(int i=0; i&26; i++) count[i] = 0;
char *s = "THE QUICK BROWN FOX JUMPED OVER THE LAZY DOG.THIS IS AN EXAMPLE TO TEST FOR YOURHISTOGRAM PROGRAM.HELLO!";
for(int i=0; s[i]; i++)
if('A'&=s[i] && s[i]&='Z')
if(++count[s[i]-'A']&max) max = count[s[i]-'A'];
for(int limit= limit&0; limit--)
for(int i=0; i&26; i++) out(count[i], limit);
printf("\n");
for(int i='A'; i&='Z'; i++) printf(" %c", i);
printf("\n");
#include &stdio.h&
#include &stdlib.h&
int max (int a, int b)
return (a&b) ? a :
int min (int a, int b)
return (a&b) ? a :
int add (int *a, int n)
int sum = 0;
for (int i=0; i&n; i++) sum += a[i];
int fajo(int *a, int n, int m)
if(m==1) return add(a, n);
int best = max(add(a, 1), fajo(a+1, n-1, m-1));
for(int i=1; i&=n-m; i++) {
int t = max(add(a, 1+i), fajo(a+1+i, n-1-i, m-1));
best = min(best, t);
int main() {
int n, m, a[100];
scanf("%d %d\n", &n, &m);
for(int i=0; i&n; i++) scanf("%d\n", &a[i]);
printf("%d\n", fajo(a, n, m));
#include &stdio.h&
struct student {
int Partion(struct student *a, int left, int right) {
struct student pivot = a[left];
while(left & right) {
while(left & right && a[right].s &= pivot.s) --
if(left & right) a[left++] = a[right];
while(left & right && a[left].s &= pivot.s) ++
if(left & right) a[right--] = a[left];
void QuickSort(struct student *a, int left, int right) {
if(left & right) {
int pivotpos = Partion(a, left, right);
QuickSort(a, left, pivotpos-1);
QuickSort(a, pivotpos+1, right);
int main() {
struct student a[100];
scanf("%d %d\n", &n, &m);
for (int i=0; i&n; i++) scanf("%d %d\n", &a[i].k, &a[i].s);
QuickSort( a, 0, n-1 );
int c=(int)(m*1.5+0.5);
printf("%d %d\n", a[c-1].s, c);
for (int i=0; i&c; i++) printf("%d %d\n", a[i].k, a[i].s);
#include &stdio.h&
#include &stdlib.h&
int main() {
int array[100][100], row,
scanf("%d %d\n", &row, &col);
for (int i=0; i& i++) {
for (int j=0; j& j++) scanf("%d ", &array[i][j]);
scanf("\n");
} directs[4] = {
{1,0}, {0,1}, {-1,0}, {0,-1}
int direct = 0;
int left=0, top=0, right=col-1, bottom=row-1;
int x=0, y=0;
printf("(%d, %d) = %d\n", x, y, array[y][x]);
for (int i=0; i&row*col-1; i++)
int u= x+directs[direct].x;
int v= y+directs[direct].y;
if(u&left || u&right || v&top || v&bottom) {
switch(direct) {
case 0: top++;
case 1: right--;
case 2: bottom--;
case 3: left++;
direct = (direct+1)%4;
x += directs[direct].x;
y += directs[direct].y;
printf("(%d, %d) = %d\n", x, y, array[y][x]);
#include &stdio.h&
#include &stdlib.h&
int main() {
int array[100][100], row,
scanf("%d %d\n", &row, &col);
for (int i=0; i& i++) {
for (int j=0; j& j++) scanf("%d ", &array[i][j]);
scanf("\n");
int x=0, y=0;
printf("(%d, %d) = %d\n", x, y, array[y][x]);
for (int i=0; i&row*col-1; i++) {
int u= x-1, v= y+1;
if(u&0 || v&=row) {
if(u&=col) {
v= u-(col-1);
printf("(%d, %d) = %d\n", x, y, array[y][x]);
数组排序颠倒
int a[10], b[10];
for (int i=0; i&10; i++) b[i] = a[9-i];
#include &stdio.h&
#include &stdlib.h&
void m(int hour, int minute, int second, int day, int month, int year)
int monthdays[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
if((year%4==0) && (year%100 || year%400==0)) monthdays[1]++;
day += year*365 + year/4 - year/100 + year/400 + (year%100 ? 1 : 0);
for(int i=0; i& i++) day += monthdays[i];
int seconds = (int)(1.0*(hour*60*60+minute*60+second)/(24*60*60)*(10*100*100));
int mhour = seconds/(100*100),
mmin = seconds%(100*100)/100,
msec = seconds%100,
mday = day%100 + 1,
mmonth = day% + 1,
myear = day/1000;
printf("%d:%d:%d %d.%d.%d\n", mhour, mmin, msec, mday, mmonth, myear);
int main()
scanf("%d\n", &n);
for(int i=0; i&n; i++) {
int hour, minute, second, day, month,
scanf("%d:%d:%d %d.%d.%d\n", &hour, &minute, &second, &day, &month, &year);
m(hour, minute, second, day-1, month-1, year-2000);
大整数乘法
#include &stdio.h&
#include &stdlib.h&
#include &string.h&
int main() {
char a[100];
scanf("%s\n", a);
int aSize = strlen(a);
for(int j=0; j&aS j++) a[j] -= '0';
char b[100];
scanf("%s\n", b);
int bSize = strlen(b);
for(int i=0; i&bS i++) b[i] -= '0';
int cSize = aSize+bS
char c[cSize];
for(int k=0; k&cS k++) c[k] = 0;
for(int i=bSize-1; i&=0; i--) {
for(int j=aSize-1; j&=0; j--) {
int k = i+1+j;
c[k] += a[j]*b[i];
if(c[k] &= 10) {
c[k-1] += c[k]/10;
c[k] %= 10;
while(c[k]==0) k++;
while(k&cSize) printf("%d", c[k++]);
printf("\n");
#include &stdio.h&
#include &stdlib.h&
int main() {
scanf("%d\n", &n);
for(int i=0; i&n; i++) {
scanf("%d ", &a[i].v);
a[i].c = 1;
for(int i=0; i&n-1; i++) {
for(int j=i+1; j&n && a[j].v==a[i].v; j++) a[j].c++;
int k = a[0].c;
for(int i=1; i&n; i++) {
if(a[i].c&k) k = a[i].c;
printf("%d ", a[i].c);
printf("%d\n", k);
#include &stdio.h&
#include &stdlib.h&
struct student {
int Partion(struct student *a, int left, int right) {
struct student pivot = a[left];
while(left & right) {
while(left & right && a[right].s &= pivot.s) --
if(left & right) a[left++] = a[right];
while(left & right && a[left].s &= pivot.s) ++
if(left & right) a[right--] = a[left];
void QuickSort(struct student *a, int left, int right) {
if(left & right) {
int pivotpos = Partion(a, left, right);
QuickSort(a, left, pivotpos-1);
QuickSort(a, pivotpos+1, right);
int main() {
scanf("%d %d\n", &n, &k);
struct student a[n];
for (int i=0; i&n; i++) scanf("%d %f\n", &a[i].m, &a[i].s);
QuickSort( a, 0, n-1 );
printf("%d %.1f\n", a[k-1].m, a[k-1].s);
#include &stdio.h&
#include &stdlib.h&
int PartionMin(int *a, int left, int right) {
int pivot = a[left];
while(left & right) {
while(left & right && a[right] &= pivot) --
if(left & right) a[left++] = a[right];
while(left & right && a[left] &= pivot) ++
if(left & right) a[right--] = a[left];
/* 由小至大 */
int PartionMax(int *a, int left, int right) {
int pivot = a[left];
while(left & right) {
while(left & right && a[right] &= pivot) --
if(left & right) a[left++] = a[right];
while(left & right && a[left] &= pivot) ++
if(left & right) a[right--] = a[left];
void QuickSortMin(int *a, int left, int right) {
if(left & right) {
int pivotpos = PartionMin(a, left, right);
QuickSortMin(a, left, pivotpos-1);
QuickSortMin(a, pivotpos+1, right);
void QuickSortMax(int *a, int left, int right) {
if(left & right) {
int pivotpos = PartionMax(a, left, right);
QuickSortMax(a, left, pivotpos-1);
QuickSortMax(a, pivotpos+1, right);
int main() {
int n, i=0, j=0;
int a[10], b[10];
for(int m=0; m&10; m++)
scanf("%d ", &n);
if(n%2) a[i++]=n;
else b[j++]=n;
QuickSortMax( a, 0, i-1 );
for(int m=0; m&i; m++) printf("%d ", a[m]);
QuickSortMin( b, 0, j-1 );
for(int m=0; m&j; m++) printf("%d ", b[m]);
#include &stdio.h&
#include &stdlib.h&
int Partion(int *a, int left, int right, int (*cmp)(int, int)) {
int pivot = a[left];
while(left & right) {
while(left & right && cmp(a[right], pivot)&=0) --
if(left & right) a[left++] = a[right];
while(left & right && cmp(a[left], pivot)&=0) ++
if(left & right) a[right--] = a[left];
void QuickSort(int *a, int left, int right, int (*cmp)(int, int)) {
if(left & right) {
int pivotpos = Partion(a, left, right, cmp);
QuickSort(a, left, pivotpos-1, cmp);
QuickSort(a, pivotpos+1, right, cmp);
int cmp(int u, int v) {
switch(u%2*2+v%2) {
case 0: return u-v;
case 1: return 1;
case 2: return -1;
case 3: return v-u;
int main() {
int a[10];
for(int m=0; m&10; m++) scanf("%d ", &a[m]);
scanf("\n");
QuickSort(a, 0, 9, cmp);
for(int m=0; m&10; m++) printf("%d ", a[m]);
printf("\n");
排列+二分法整数查找
#include &stdio.h&
#include &stdlib.h&
int Partion(int *a, int left, int right) {
int pivot = a[left];
while(left & right) {
while(left & right && a[right] &= pivot) --
if(left & right) a[left++] = a[right];
while(left & right && a[left] &= pivot) ++
if(left & right) a[right--] = a[left];
void QuickSort(int *a, int left, int right) {
if(left & right) {
int pivotpos = Partion(a, left, right);
QuickSort(a, left, pivotpos-1);
QuickSort(a, pivotpos+1, right);
int bsearch(int *a, int begin, int end, int b)
while(begin & end) {
int i = (begin+end)/2;
int f = a[i]-b;
if(!f) return a[i];
if(f & 0) begin = i+1;
return a[begin];
int main() {
scanf("%d\n", &n);
for(int i=0; i&n; i++) scanf("%d ", &a[i]);
scanf("\n");
QuickSort( a, 0, n-1);
scanf("%d\n", &m);
for(int i=0; i&m; i++) {
scanf("%d\n", &b);
printf("%d\n", bsearch(a, 0, n-1, b));
#include &stdio.h&
#include &stdlib.h&
int main()
scanf("%d\n", &n);
float sum=0;
for(int i=0; i&n; i++)
scanf("%d\n", &m);
while(m-70&=0)
printf("%.1f\n", sum);
int sum=0;
for(int i=0; i&n; i++)
scanf("%d\n", &m);
sum += m/70+1;
printf("%.1f\n", 0.1*sum);
#include &stdio.h&
#include &stdlib.h&
struct student {
char m[32];
int Partion(struct student *a, int left, int right, int (*cmp)(struct student, struct student)) {
struct student pivot = a[left];
while(left & right) {
while(left & right && cmp(a[right], pivot)&=0) --
if(left & right) a[left++] = a[right];
while(left & right && cmp(a[left], pivot)&=0) ++
if(left & right) a[right--] = a[left];
void QuickSort(struct student *a, int left, int right, int (*cmp)(struct student, struct student)) {
if(left & right) {
int pivotpos = Partion(a, left, right, cmp);
QuickSort(a, left, pivotpos-1, cmp);
QuickSort(a, pivotpos+1, right, cmp);
int cmp(struct student u, struct student v) {
return v.n-u.n;
int main() {
scanf("%d\n", &n);
struct student a[n];
for (int i=0; i&n; i++) scanf("%s %d\n", a[i].m, &a[i].n);
QuickSort(a, 0, n-1, cmp);
for (int i=0; i&n; i++) printf("%s %d\n", a[i].m, a[i].n);
直接代入排序
#include &stdio.h&
#include &stdlib.h&
void f(int *a, int n, int m)
for(int i=1; i&n; i++)
if(a[0]+a[i]==m) {
printf("%d %d\n", a[0], a[i]);
f(a+1, n-1, m);
int cmp(int *u, int *v) {
return *u - *v;
int main()
scanf("%d\n", &n);
for(int i=0; i&n; i++) scanf("%d ", a+i);
scanf("\n");
qsort(a, n, sizeof(int), (int (*)(const void *, const void *))cmp);
scanf("%d\n", &m);
f(a, n, m);
#include &stdio.h&
#include &stdlib.h&
#include &string.h&
struct student
char s[64];
void Merge(struct student *a, int s, int m, int e, struct student *tmp)
int p1=s, p2=m+1;
while(p1 &= m && p2&= e)
if( a[p1].n & a[p2].n || (a[p1].n==a[p2].n && strcmp(a[p1].s, a[p2].s)&0) ) tmp[pb++] = a[p1++];
else tmp[pb++] = a[p2++];
while( p1 &= m ) tmp[pb++] = a[p1++];
while( p2 &= e ) tmp[pb++] = a[p2++];
for( int i=0; i&e-s+1; i++ ) a[s+i] = tmp[i];
void MergeSort(struct student *a, int s, int e, struct student *tmp)
if( s & e )
int m = (s+e)/2;
MergeSort(a,s,m,tmp);
MergeSort(a,m+1,e,tmp);
Merge(a,s,m,e,tmp);
int main()
scanf("%d\n", &n);
struct student a[n];
for(int i=0; i&n; i++) scanf("%s %d\n", a[i].s, &a[i].n);
struct student tmp[n];
MergeSort( a, 0, n-1, tmp);
for(int i=0; i&n; i++) printf("%s %d\n", a[i].s, a[i].n);
#include &stdio.h&
#include &string.h&
struct student {
char m[64];
int compare(struct student a, struct student b) {
int c = b.n-a.n;
return strcmp(a.m, b.m);
int Partion(struct student *a, int left, int right) {
struct student pivot = a[left];
while(left & right) {
while(left & right && compare(a[right], pivot) & 0) --
if(left & right) a[left++] = a[right];
while(left & right && compare(a[left], pivot) & 0) ++
if(left & right) a[right--] = a[left];
void QuickSort(struct student *a, int left, int right) {
if(left & right) {
int pivotpos = Partion(a, left, right);
QuickSort(a, left, pivotpos-1);
QuickSort(a, pivotpos+1, right);
int main() {
scanf("%d\n", &n);
struct student a[n];
for (int i=0; i&n; i++) scanf("%s %d\n", a[i].m, &a[i].n);
QuickSort(a, 0, n-1);
for (int i=0; i&n; i++) printf("%s %d\n", a[i].m, a[i].n);
#include &stdio.h&
#include &stdlib.h&
void Merge(int *a, int s, int m, int e, int *tmp)
int p1=s, p2=m+1;
while(p1 &= m && p2 &= e)
if(a[p1] & a[p2]) tmp[pb++] = a[p1++];
else tmp[pb++] = a[p2++];
while( p1 &= m ) tmp[pb++] = a[p1++];
while( p2 &= e ) tmp[pb++] = a[p2++];
for(int i=0; i&e-s+1; i++) a[s+i] = tmp[i];
void MergeSort(int *a, int s, int e, int *tmp)
if( s & e )
int m = (s+e)/2;
MergeSort(a,s,m,tmp);
MergeSort(a,m+1,e,tmp);
Merge(a,s,m,e,tmp);
int main()
scanf("%d\n", &n);
for(int i=0; i&n; i++) scanf("%d ", &a[i]);
scanf("\n");
scanf("%d\n", &k);
int tmp[n];
MergeSort(a, 0, n-1, tmp);
for(int i=0; i&k; i++) printf("%d\n", a[i]);
0 收藏&&|&&3
你可能感兴趣的文章
你可能感兴趣的文章
分享到微博?
我要该,理由是:
在 SegmentFault,学习技能、解决问题
每个月,我们帮助 1000 万的开发者解决各种各样的技术问题。并助力他们在技术能力、职业生涯、影响力上获得提升。

我要回帖

更多关于 大一c语言考试题及答案 的文章

 

随机推荐