四川大学2012年C语言上机考试复习题~EF1E1
2012c语言题库附答案(可编辑)
2012年C语言机房最新考试题库所属语言:C语言试卷方案:TC_1204092119试卷总分:100分共有题型:3种一、程序填空共2题(共计30分)第1题(15.0分)题号:70/*【程序填空】功能:约瑟夫环问题求解。
即有n个人围成一圈,顺序排号。
从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。
#include#define n 50int mainint i,k,m,n,num[n],*p;printf "please input the total of numbers %d :", n ; scanf "%d",&n ;p num;/***********SPACE***********/for i 0;【?】;i++/***********SPACE***********/ * p+i 【?】;i 0;k 0;m 0;while m n-1/***********SPACE***********/ if 【?】! 0 k++;if k 3* p+i 0;k 0;m++;i++;if i n i 0;/***********SPACE***********/ while 【?】 p++;printf "%d is left\n",*p ;return 0;答案:答案1i i答案2i+11+i答案3* p+i * i+p答案4*p 00 *p第2题(15.0分)题号:34/*【程序填空】功能:输入某年某月某日,判断这一天是这一年的第几天?#includeint mainint day,month,year,sum,leap;printf "\nplease input year,month,day\n" ;scanf "%d,%d,%d",&year,&month,&day ;switch month /*从月份得出已过多少天*/case 1:sum 0;break;case 2:sum 31;break;case 3:sum 59;break;/***********SPACE***********/ case 4:【?】;break;case 5:sum 120;break;case 6:sum 151;break;case 7:sum 181;break;case 8:sum 212;break;case 9:sum 243;break;case 10:sum 273;break;case 11:sum 304;break;case 12:sum 334;break;default:printf "data error" ;break;/***********SPACE***********/【?】;/*再加上日期数*//***********SPACE***********/if year%400 0|| year%4 0【?】 /*判断是否闰年*/ leap 1;elseleap 0;/***********SPACE***********/if leap 1【?】sum++;printf "it is the %dth day.",sum ;return 0;答案:答案1sum 90答案2sum sum+day或sum day+sum或sum+ day答案3&&year%100! 0&&0! year%100或&& year%100! 0答案4&&month 2&&2 month二、程序改错共2题(共计30分)第1题(15.0分)题号:254/*【程序改错】功能:请编写函数fun,对长度为8个字符的字符串,将8个字符按降序排列。
2012年9月计算机二级C语言上机题库及答案(破译版)
计算机二级c语言上机题库内部资料,切勿外传!.第1套填空题请补充FUN函数,FUN函数的功能是求10的阶乘。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在fun函数的横线上填入所编写的若干表达式或语句。
试题程序:#include <stdio.h>long fun(int n){if (___1___)return (n*fun(___2___));return ___3___;}main(){p rintf("10!=%ld\n", fun(10));}第1处填空:n>1或1<n第2处填空:n-1第3处填空:1或11或1L改错题下列给定程序的功能是:读入一个整数K(2〈=K〈=10000),打印它的所有因子(即所有为素数的因子)。
例如,若输入整数2310,则应输出:2、3、5、7、11。
请改正程序中的错误,使程序能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序:#include <conio.h>#include <stdio.h>/********found********/IsPrime(int n);{int i, m;m = 1;/********found********/for (i=2; i<n; i++)if !(n%i){m = 0;break;}return(m);}main(){int j, k;printf("\nplease enter an integer number between 2 and 10000:");scanf("%d", &k);printf("\n\nThe prime factor(s) of %d is(are):", k);for (j=2; j<k; j++)if ((!(k%j)) && (IsPrime(j)))printf(" %4d,", j);printf("\n");}第1处:Isprime(int n);应改为Isprime(int n)第2处:if !(n%i)应该为if(!(n%i))编程题M个人的成绩存放在score数组中,请编写函数fun,它的功能是:返回低于平均分的认输,并将低于平均分的分数放在below所指的数组中。
2012年3月C语言上机真题及答案
2012年3月C语言上机真题说明:本题库是根据教育部考试中心制定修改计划进行修改后的计算机等级考试二级C 语言机试题库。
对于题库的解答来自考试中心的答题系统。
※※※※※※※※※※※※※※※※※※※※※※※※※第01套:给定程序中,函数fun的功能是:将形参n 所指变量中,个位上为偶数的数去除,剩余的数按原来从高位到低位的顺序组成一个新的数,并通过形参指针n传回所指变量。
例如,输入一个数:27638496,新的数:为739。
请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!给定源程序:#include <stdio.h>void fun(unsigned long *n){ unsigned long x=0, i; int t;i=1;while(*n)/**********found**********/{ t=*n % __1__;/**********found**********/if(t%2!= __2__){ x=x+t*i; i=i*10; }*n =*n /10;}/**********found**********/*n=__3__;}main(){ unsigned long n=-1;while(n>99999999||n<0){ printf("Please input(0<n<100000000): "); scanf("%ld",&n); }fun(&n); printf("\nThe result is: %ld\n",n);}解题思路:第一处:t是通过取模的方式来得到*n的个位数字,所以应填:10。
第二处:判断是否是奇数,所以应填:0。
第三处:最后通形参n来返回新数x,所以应填:x。
(2021年整理)2012全国计算机等级考试-二级C语言-上机考试-填空题-分类总结[1]
[1]编辑整理:尊敬的读者朋友们:这里是精品文档编辑中心,本文档内容是由我和我的同事精心编辑整理后发布的,发布之前我们对文中内容进行仔细校对,但是难免会有疏漏的地方,但是任然希望((完整版)2012全国计算机等级考试-二级C语言-上机考试-填空题-分类总结[1])的内容能够给您的工作和学习带来便利。
同时也真诚的希望收到您的建议和反馈,这将是我们进步的源泉,前进的动力。
本文可编辑可修改,如果觉得对您有帮助请收藏以便随时查阅,最后祝您生活愉快业绩进步,以下为(完整版)2012全国计算机等级考试-二级C语言-上机考试-填空题-分类总结[1]的全部内容。
-分类总结[1]编辑整理:张嬗雒老师尊敬的读者朋友们:这里是精品文档编辑中心,本文档内容是由我和我的同事精心编辑整理后发布到文库,发布之前我们对文中内容进行仔细校对,但是难免会有疏漏的地方,但是我们任然希望 (完整版)2012全国计算机等级考试—二级C语言-上机考试-填空题—分类总结[1]这篇文档能够给您的工作和学习带来便利。
同时我们也真诚的希望收到您的建议和反馈到下面的留言区,这将是我们进步的源泉,前进的动力。
本文可编辑可修改,如果觉得对您有帮助请下载收藏以便随时查阅,最后祝您生活愉快业绩进步,以下为〈(完整版)2012全国计算机等级考试—二级C语言—上机考试—填空题—分类总结[1]> 这篇文档的全部内容。
—分类总结填空题的分类(分为7类):一、数学题目6、13、25、29、36、37、38、44、46解题方法:1。
如果在函数中定义变量,但是没有定义成静态存储变量,即变量前面没有static,应给变量赋初值,如果以后用到的是加减运算,则赋初值为0或者是0。
0;如果以后用到的是乘除运算,则赋初值为1或者是1。
0;2.循环条件的填空,分析表达式的规律,看表达式中的最后一项的值是否到了第m 项或者是第n 项,如果到了第m 或者第n 项,则在循环中的第二个表达式中用到的是i<=m或者是i〈=n;3.循环条件中如果用的是while 语句,则循环变量的初值应该在while 的外面定义和赋初值,在循环语句中必须给变量自加或者是自减。
四川大学C语言上机考试题
1.有以下程序#include <stdio.h>void main(){ int a=5,b=4,c=3,d=2;if(a>b>c)printf("%d\n",d);else if((c-1>=d)==1)printf("%d\n",d+1);elseprintf("%d\n",d+2);}执行后输出的结果是___D___。
A.2B.编译时有错,无结果C.4D.32.设x为int型变量,则执行以下语句后,x的值为:int x = 10;x*=x/=-x;printf("%d\n", --x); --D---A.10B.1C.-10D.03.下面程序的输出是_C___。
main(){ int x,i;for(i=1;i<=100;i++){ x=i;if(++x%2==0)if(++x%3==0)if(++x%7==0)printf("%d ",x);}}A.39 81B.42 84C.28 70D.26 684.在C语言中,合法的字符常量是---B----A."a"B.'\t'C.97D.a5.已知int x=12,y=3;执行下述程序后,变量x的值是_D___。
do{ x/=y--;}while(x>y);printf("%d\n",x);}A.2B.1C.3D.程序运行有错误6.有以下程序#include <stdio.h>void main(){ int m=3,n=4,x;x=-m++;x=x+8/++n;printf("%d\n",x);}程序运行后的输出结果是__C____。
A.3B.5C.-2D.-17.若a、b、c1、c2、x、y均是整型变量,正确的switch语句是______。
2012年全国计算机等级C语言考试经典例题及题库
1、对象有如下一些基本特点,即标识惟一性、分类性、多态性、封装性和模块独立性。
2、SQL语句中凡创建都用CREA TE,删除都用DROP,改用ALTER,再跟类型和名字,附加子名。
3、关系模型允许定义3类数据约束,它们是实体完整性约束、参照完整性约束及用户自定义的完整性约束。
4、循环链表就是将链表的最后一个结点指向链表头结点(或第一个结点),即p->next=head。
5、程序设计应该简单易懂,语句构造应该简单直接,不应该为提高效率而把语句复杂化。
6、数据模型所描述的内容3有个部分,它们是数据结构、数据操作和数据约束。
7、C语言的转义字符见下表所示。
转义字符转义字符的意义\n 回车换行\t 横向跳到下一制表位置\v 竖向跳格\b 退格\r 回车\f 换页\\反斜线符“\”\’单引号符\a 鸣铃\ddd 1~3位八进制数所代表的字符\xhh 1~2位十六进制数所代表的字符8、分析:本题考查switch语句的掌握。
必须掌握以下内容:首先应该明白switch语句的语法格式:switch语句的语法格式为:switch(表达式){case常量表达式1:语句组1;case常量表达式2:语句组2;…case常量表达式n:语句组n;default:语句组n+1;}另外,注意以下几点关于switch语句的重点:①系统在执行时计算开关表达式的值;②根据所得的值在各个case标号表达式中寻找匹配,直到发现与表达式匹配的标号(本例中匹配的是case ′B′:);③找到匹配后执行后面相应的语句表,顺序往下执行;④如果无相匹配的标号,若存在default标号,则执行该语句标号后面的语句表n+1;当不存在default标号时,不执行switch中的任何一个语句表。
一般而言,在多分支结构中总会出现“意外”的情况,这时均可归入default:程序段,作统一的处理。
default标号是可选性的,不必每次都有,视需要而定。
switch语句中还可以包含switch语句,形成switch的嵌套9、在C语言中,逻辑运算符中一共有4个,它们分别是!(逻辑非)、||(逻辑或)、&&(逻辑与)、^(异或)。
四川大学网络教育《C 语言程序设计》复习资料期末考试复习题及参考答案
《C语言程序设计》复习资料一.单项选择题1.下面哪一个是合法的用户自定义标示符( D )(A) b-b (B) float (C) <fr> (D) _isw2.a、b为两个bool型变量,如下哪一个表达式能够表达“a、b同时为真或同时为假”的含义?(C )(A)a&&b||a (B)(a&&b)||!b (C)(a&&b)||(!a&&!b) (D)(a||b)&&(!a||!b)3.对于表达式(x>0)?x=x-1:x=x+1,若当前x取值为-2,该表达式的运算结果为( A )(A) -1 (B) 0 (C) 1 (D) 24.不是C语言基本数据类型的是( D )(A) 指针类型 (B) 整型 (C) 字符型 (D) 实型5.以下for循环控制中,循环次数为10次的是( C )(A)for(int i=1;i<10;i++) (B)for(int i=0;i<=10;i++)(C)for(int i=0;i<20;i+2) (D)for(int i=0;i<=20;i+2)6.设有:int a=3, b= 4, c= 5,x , y; 表达式0 && (x=a)&&(y=b)的值为( B )(A) 1 (B) 0 (C) 3 (D) 47.设有语句 int a=3 ; 则执行了语句 a+=6;后,变量a 的值为( C )(A) 18 (B) -3 (C) 9 (D) 128.对于变量定义char* p_name[]={“Kate”,“John”,“Mike”},如下哪一种表达式能表示“Mike”中的‘k’字符?( B )(A)p_name[0][2] (B)p_name[2][2](C)*(p_name[2]+3) (D)*(p_name[1]+2)9.表达式(int)7.5/(float)2的取值为( A )(A)3.75 (B)3.5 (C)3 (D)410.有定义语句:float a[4];则分配给数组a的内存空间为( C )字节(A) 20 (B) 12 (C) 16 (D) 1011.表达式6>8 | | 3>=9的取值为( A )(A)0 (B)1 (C)2 (D)312. 表达式18/4*sqrt(4.0)/8值的数据类型为(C )(A) int(B)float(C)double(D)不确定13.表达式18/4*sqrt(4.0)/8值的数据类型为( D )(A)int B float C.double D.不确定14.在以下定义中对标识符ptr描述正确的是( C )int(*ptr)[3];(A)定义不合法 (B)是一个指针数组名,每个元索是一个指向整型变量的指针(C)是一个指针,它指向一个具有3个元素的一维数组(D)是一个指向整型变量的指针15.已知有语句 scanf (“%d%d”,&a,&b);要使整型变量 a = 6, b = 8,运行时,屏幕上应输入( D )(A)a=6,b=8 (B)a=6 b=8 (C)6 8 (D)6 , 816.若char a=3,b=6,c; c=a^(b>>2);则c的二进制形式为(A )(A) 00000010 (b)00000100 (C)00000001 (D)0000001117.若有说明:int n=2,*p=&n,*q=p,则以下非法的赋值语句是( D )(A)p=q (B)*p=*q (C)n=*q (D)p=n18.已知int a[3][4];则对数组元素引用正确的是( C )(A) a[2][4] (B) a[1,3] (C) a[2][0] (D) a(2)(1)19.已知定义int a[]={10, 60, 30};写出语句a[0]+ = a[1] - = a[2];运行后数组各元素的值为( B )(A)a[0] =70 , a[1] = 30,a[2] = 30。
2012年国家二级C语言考试所有上机真题答案
11、下列给定程序中,函数fun的功能是:计算如下公式直到,并且把计算结果作为函数值返回。
例如,若形参e的值为1e-3,则函数返回值为0.551690。
请在下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。
注意:部分源程序在文件BLANK1.C中。
不得增行或删行,也不得更改程序的结构!【参考答案】(1)3.0或(double)3(2)>(3) (t+1)2、下列给定程序中函数fun的功能是:求出如下分数序列的前n项之和。
和值通过函数值返回。
例如,若n=5,则应输出8.391667。
请改正程序中的错误,使其得出正确的结果。
注意:部分源程序在文件MODI1.C中,不得增行或删行,也不得更改的程序的结构!【参考答案】(1)double fun(int n)(2)s=s+(double)a/b;3、请编写函数fun,其功能是:找出2×M整型二维数组中最大元素的值,并将此值返回调用函数。
注意:部分源程序在文件PROG1.C中。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
【参考答案】int fun (int a[][M]){int i,j,max=a[0][0];for(i=0;i<2;i++)for(j=0;j<M;j++)if(max<a[i][j])max=a[i][j];return max;}21、下列给定程序中,函数fun的功能是:计算如下公式前n项的和并作为函数值返回。
例如,当形参n的值为10时,函数返回值为9.612558。
请在下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。
注意:部分源程序在文件BLANK1.C中。
不得增行或删行,也不得更改程序的结构!【参考答案】(1) 0(2) n(3) (t*t)2、下列给定程序中函数fun的功能是:统计substr所指的子符串在str所指的字符串中出现的次数。
2012年9月全国计算机等级考试二级C语言上机题库(完整版)
第一套1.程序填空程序通过定义学生结构体数组,存储了若干个学生的学号、姓名和三门课的成绩。
函数fun的功能是将存放学生数据的结构体数组,按照姓名的字典序(从小到大排序)。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
第一处struct student t;第二处for(i=0;i<n-1;i++)第三处if(strcmp(a[i].name,a[j].name)>0)2程序修改给定程序MODI1.C中函数fun的功能是:在p所指字符串中找出ASCII码值最大的字符,将其放在第一个位置上;并将该字符前的原字符向上顺序移动。
/**found**/q=p+i;/**found**/while(q>p)3程序设计学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写了函数fun,它的功能是:把指定分数范围内的学生数据放在b所指的数组中,分数范围内的学生人数由函数值返回。
int fun(STREC *a,STREC *b,int l,int h){int i,j=0;for(i=0;i<N;i++)if((a[i].s>=1&&a[i].s<=h)b[j++]=a[i];return j;}第二套1.程序填空给定程序中已建立一个带有头结点的单向链表,链表中的各结点按数据域递增有序连接。
函数fun的功能是:删除链表中数据域值相同的结点,使之只保留一个。
第一处free(q);第二处q=p->next;第三处q=q->next;2. 程序修改给定程序MODI1.C中函数fun的功能是:用选择法对数组中的n各元素按从小到大的顺序进行排序。
/**found**/p=j;/**found**/p=i;3. 程序设计请编写一个fun函数,它的功能是:求出1到m之间(含m)能被7或11整除的所有整数放在数组a中,通过n 返回这些数的个数。
2012年3月份c语言上机题库答案
一:填空题(30分)程序填空题有如下特点:每个空下面均有一个注释“/*******found*******/”,这个注释不能更改和删除【1】每个空均有类似于“__1__”的标记,答案填写在这个标记的地方,填完后要将这个标记删除。
【2】不要改变程序的其他任何地方,切忌不得增行或删行【3】除了在类似于“__1__”标记的地方填答案外,不要动程序任何地方【4】程序填空的答案可能有多个,你只要填写一种正确的就行了,为了保险起见,请使用最常用的答案,不要去使用一些生僻古怪的答案,因为系统可能没有提供这个答案。
【5】非常重要的是,一定要记得保存如果忘了保存就不能得分【6】做题的过程中可以运行程序,根据程序的运行结果来验证自己的答案是否正确。
但这对程序填空题来说并不是必须的,甚至有的程序根本就运行不出来。
程序没有main函数【在以前的考试中遇到过,可能是系统升级出现的BUG】,而且,即使运行结果正确也不一定能完全保证你答案一定正确,但绝大部分情况下运行正确的时候答案也正确,当然,如果运行结果错误,你的答案肯定有错误的地方。
二:改错题(30分)程序改错题有如下特点:【1】每个题目均有若干个注释“/*******found*******/”,这个注释不能更改和删除【2】每个注释紧接着的下一行就是程序需要改错的地方。
也就是说,整个程序都只有这些标记下的一行需要改错,其他的任何地方均不可能出现错误。
【3】不要改变程序的其他任何地方,切忌不得增行或删行【4】除了在需要改错和能改错的地方地方改错外,不要动程序任何地方【5】程序的改错方法可能有多个,你只要改成一种正确的就行了,为了保险起见,请使用最常用的答案,不要去使用一些生僻古怪的答案,因为系统可能没有提供这个答案。
【6】非常重要的是,一定要记得保存否则就不能得分三:程序编写题(40分)程序编写题有如下特点:【1】每个题目均有一个函数要编写。
【2】编写完后程序一定要编译、链接和运行,否则不能得分。
2012年6月C语言机考试题库及答案-推荐下载
k++;
printf("\n} 2.题目:【程序填空】将长整型数 S 中每一位上为偶数的数码依次取出,构成一个新数放
在 t 中。高位仍在高位,低位仍在低位。
例如,当 s 中的数位:87653142 时,t 中的数为:8642.
程序如下:
#include <stdio.h>
注释:/*$ERROR1$*/行有错误 /*$BLANK1$*/空须填写
2012 年 C 语言机试考试题目
模拟一
1.题目:[改错]在屏幕上输出以下图形(说明:数字之间无空格)。
19
2288
333777
44446666
5555555555 程序如下:
#include <stdio.h>
void main()
{ case 10: b[4]++;break; case 9: b[3]++;break; case 8: b[2]++;break; case 7: b[1]++;break; case 6: b[0]++;break; ______: b[5]++;break; /*$BLANK2$*/
} } for(i=0;i<6;i++)
/*$ERROR1$*/
continue; /*$ERROR2$*/
if(n!=10) /*$ERROR3$*/
break;
模拟三
3
对全部高中资料试卷电气设备,在安装过程中以及安装结束后进行高中资料试卷调整试验;通电检查所有设备高中资料电试力卷保相护互装作置用调与试相技互术通关,1系电过,力管根保线据护敷生高设产中技工资术艺料0不高试仅中卷可资配以料置解试技决卷术吊要是顶求指层,机配对组置电在不气进规设行范备继高进电中行保资空护料载高试与中卷带资问负料题荷试2下卷2,高总而中体且资配可料置保试时障卷,各调需类控要管试在路验最习;大题对限到设度位备内。进来在行确管调保路整机敷使组设其高过在中程正资1常料中工试,况卷要下安加与全强过,看度并22工且22作尽22下可22都能22可地护以缩1关正小于常故管工障路作高高;中中对资资于料料继试试电卷卷保破连护坏接进范管行围口整,处核或理对者高定对中值某资,些料审异试核常卷与高弯校中扁对资度图料固纸试定,卷盒编工位写况置复进.杂行保设自护备动层与处防装理腐置,跨高尤接中其地资要线料避弯试免曲卷错半调误径试高标方中高案资等,料,编试要5写、卷求重电保技要气护术设设装交备备置底4高调、动。中试电作管资高气,线料中课并敷3试资件且、设卷料中拒管技试试调绝路术验卷试动敷中方技作设包案术,技含以来术线及避槽系免、统不管启必架动要等方高多案中项;资方对料式整试,套卷为启突解动然决过停高程机中中。语高因文中此电资,气料电课试力件卷高中电中管气资壁设料薄备试、进卷接行保口调护不试装严工置等作调问并试题且技,进术合行,理过要利关求用运电管行力线高保敷中护设资装技料置术试做。卷到线技准缆术确敷指灵设导活原。。则对对:于于在调差分试动线过保盒程护处中装,高置当中高不资中同料资电试料压卷试回技卷路术调交问试叉题技时,术,作是应为指采调发用试电金人机属员一隔,变板需压进要器行在组隔事在开前发处掌生理握内;图部同纸故一资障线料时槽、,内设需,备要强制进电造行回厂外路家部须出电同具源时高高切中中断资资习料料题试试电卷卷源试切,验除线报从缆告而敷与采设相用完关高毕技中,术资要资料进料试行,卷检并主查且要和了保检解护测现装处场置理设。备高中资料试卷布置情况与有关高中资料试卷电气系统接线等情况,然后根据规范与规程规定,制定设备调试高中资料试卷方案。
[IT认证]2012年计算机二级C语言上机题及答案汇总50套
二级C 语言上机预测题目录一、程序填空题 (1)二、程序修改题 (13)三、程序编写题 (24)参考答案 (34)11 2 3 2、给定程序中,函数 fun 的功能是建立一个 N ×N 4 5 6 的矩阵。
矩阵元素的构成规律是:最外层元素的值全部 7 8 9 计算结果为 为 1;从外向内第 2 层元素的值全部为 2;第 3 层元素的1 0 0 值全部为 3,…依次类推。
例如,若 N=5,生成的矩阵为: 6 5 0 1 1 1 1 1 10 14 91 2 2 2 1 请在程序的下划线处填入正1 2 3 2 1 1 2 2 2 1二级 C 语言上机考试复习资料,共有 50 套题目/**********found**********/a[k][i]=a[k][N-i-1]= 3 ; } }一、程序填空题1、给定程序中,函数 fun 的功能是:在任意给定的 9 个正整数中找出按升序排列时处于中间的数,将原数据序 列中比该中间数小的数用该中间数替换,位置不变,在主 函数中输出处理后的数据序列,并将中间数作为函数值返 回。
例如,有 9 个正整数:1 5 7 23 87 5 8 21 45按升序排列时的中间数为:8 处理后主函数中输出的数列为:8 8 8 23 87 8 8 21 45请在程序的下划线处填入正确的内容并把下划线删 除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下的 BLANK1.C 中。
不得增行或删行,也不得更改程序的结构!#include <stdio.h> #define N 9 int fun(int x[]){ int i,j,k,t,mid,b[N];for(i=0;i<N;i++) b[i]=x[i]; for(i=0;i<=N/2;i++) { k=i;for(j=i+1;j<N;j++) if(b[k]>b[j]) k=j; if(k != i ) {/**********found**********/t=b[i]; b[i]= 1_ ; b[k]=t; } }/**********found**********/mid=b[ 2 ]; for(i=0; i<N; i++)/**********found**********/if(x[i] 3 mid) x[i]=mid; return mid; }main(){ int i, x[N]={1,5,7,23,87,5,8,21,45};for(i=0; i<N; i++) printf("%d ",x[i]); printf("\nThe mid data is: %d\n",fun(x)); for(i=0; i<N; i++) printf("%d ",x[i]); printf("\n"); } main(){ int x[N][N]={0},i,j; fun(x);printf("\nThe result is:\n"); for(i=0; i<N; i++){ for(j=0; j<N; j++) printf("%3d",x[i][j]);printf("\n"); } }3、给定程序中,函数 fun 的功能是: 将 s 所指字符串中的所有数字字符移到所有非数字字符之后,并保持数字 字符串和非数字字符串原有的先后次序。
2012全国大学生历年全国计算机等级考试_二级C语言上机考试题库及答案
1.填空给定程序的功能是调用fun函数建立班级通讯录。
通讯录中记录每位学生的编号,姓名和电话号码。
班级的人数和学生的信息从键盘读入,每个人的信息作为一个数据块写到名为myfile5.dat的二进制文件中。
请在程序的下划线处填入正确的内容并把下划线删除,是程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.c中不得增行或删行,也不得更改程序的结构!void check();/**********found**********/int fun(___1___ *std){/**********found**********/___2___ *fp; int i;if((fp=fopen("myfile5.dat","wb"))==NULL)return(0);printf("\nOutput data to file !\n");for(i=0; i<N; i++)/**********found**********/fwrite(&std[i], sizeof(STYPE), 1, ___3___);fclose(fp);return (1);}修改给定程序MODI1.C中函数fun的功能是:先将在字符串s中的字符按正序存放到t串中,然后把s中的字符按逆序连接到t串后面。
例如:当s中的字符串为:“ABCDE”时,则他中的字符串应为:“ABCDEEDCBA”。
请改正程序中的错误,使他能得出正确的结果。
注意:不要改动main函数,不能增行或删行,也不得更改程序的结构!void fun (char *s, char *t){ int i, sl;sl = strlen(s);/************found************/for( i=0; i<=s1; i ++)t[i] = s[i];for (i=0; i<sl; i++)t[sl+i] = s[sl-i-1];/************found************/t[sl] = '\0';}程序函数fun的功能是:将两个两位数的正整数a,b合并成一个整数放在c中。
大学C语言期末上机考试题库【精品】
上机考试练习题1、程序填空,不要改变与输入输出有关的语句。
输入一个正整数repeat (0<repeat<10),做repeat次下列运算:输入 x,计算并输出下列分段函数 f(x) 的值(保留1位小数)。
当 x 不等于0时,y = f(x) = 1/x,当 x 等于0时,y = f(x) = 0。
输入输出示例:括号内是说明输入2 (repeat=2)10 (x=10)0 (x=0)输出f(10.00) = 0.1f(0.00) = 0.0#include <stdio.h>\{int repeat, ri;double x, y;scanf("%d", &repeat);for(ri = 1; ri <= repeat; ri++){scanf("%lf", &x);/*---------*/if(x!=0) y=1/x;else y=0;printf("f(%.2f) = %.1f\n", x, y);}}20022程序填空,不要改变与输入输出有关的语句。
输入华氏温度,输出对应的摄氏温度。
计算公式:c = 5*(f-32)/9,式中:c表示摄氏温度,f表示华氏温度。
输入输出示例:括号内为说明输入150 (fahr=150)输出celsius = 65#include <stdio.h>int main(void)int celsius, fahr;/*---------*/scanf(“%d”,&fahr);celsius=5.0*(fahr-32)/9;printf("celsius = %d\n", celsius);}20023程序填空,不要改变与输入输出有关的语句。
输入存款金额 money、存期 year 和年利率 rate,根据下列公式计算存款到期时的利息 interest(税前),输出时保留2位小数。
四川大学c语言考试题及答案
四川大学c语言考试题及答案一、选择题(每题2分,共20分)1. 下列关于C语言中变量的描述,不正确的是:A. 变量名必须以字母开头B. 变量名可以包含下划线C. 变量名区分大小写D. 变量名不能以数字开头答案:D2. 在C语言中,用于定义一个字符型变量的关键字是:A. charB. intC. floatD. double答案:A3. 下列哪个选项不是C语言中的运算符?A. %B. &&C. =D. :答案:D4. 在C语言中,用来表示逻辑“与”的运算符是:A. &&B. ||C. !D. ^答案:A5. 下列哪个选项不是C语言中的控制语句?A. ifB. switchC. whileD. case答案:D6. 在C语言中,用于定义一个整型数组的语法是:A. int array[10];B. int array[];C. int [10] array;D. int array;答案:A7. 下列哪个函数用于将浮点数转换为字符串?A. sprintfB. printfC. scanfD. strcat答案:A8. 在C语言中,用于定义一个函数的关键字是:A. functionB. defineC. defD. void答案:D9. 下列哪个选项不是C语言中的预处理指令?A. #includeB. #defineC. #ifD. switch答案:D10. 在C语言中,用于表示“或”逻辑运算的运算符是:A. ||B. &&C. ==D. !=答案:A二、填空题(每题2分,共20分)1. C语言中,用于定义一个整型变量的关键字是____。
答案:int2. 在C语言中,______运算符用于比较两个值是否相等。
答案:==3. C语言中,用于定义一个字符串的语法是____。
答案:char str[] = "Hello";4. 在C语言中,____运算符用于计算两个数的和。
最新2012年全国计算机等级考试C语言南开100题
2012年全国计算机等级考试C语言南开100题1: 第1题 m个人的成绩存放在score数组中,请编写函数fun,它的功能是:将低于平均分的人作为函数值返回,将低于平均分的分数放在below所指定的函数中。
答案:int fun(int score[],int m,int below[]){int i,k=0,aver=0;for(i=0;i<m;i++)aver+=score[i];aver/=m;for(i=0;i<m;i++)if(score[i]<aver){below[k]=score[i];k++;}return k;}2: 第2题请编写函数fun,它的功能是:求出1到100之内能北7或者11整除,但不能同时北7和11整除的所有证书,并将他们放在a所指的数组中,通过n返回这些数的个数。
答案:void fun(int *a, int *n){int i,j=0;for(i=2;i<1000;i++)if ((i%7==0 || i%11==0) && i%77!=0)a[j++]=i;*n=j;}3: 第3题请编写函数void fun(int x,int pp[],int *n),它的功能是:求出能整除x且不是偶数的各整数,并按从小到大的顺序放在pp所指的数组中,这些除数的个数通过形参n返回。
答案:void fun(int x, int pp[ ], int *n){int i=1,j=0;k=0,*t=pp;for(i=0;i<=x;i++)if(i%2!=0){t[j]=I;j++;}for(i=0;i<j;i++)if(x%t[i]==0){pp[k]=t[i];k++;}*n=k;}4: 第4题请编写一个函数void fun(char *tt,int pp[]),统计在tt字符中"a"到"z"26各字母各自出现的次数,并依次放在pp所指的数组中。
2012C上总练习题及参考答案
C++(上)总复习题第一、二章 习题一、选择题1.下列符号串中不合法的C++语言标识符是 。
A registerB Turbo_C C auto_D _1233.若有整型变量a 和c ,c 的当前值是5,则执行下列语句后a 的值是 。
a=2+(c+=c++,c+8,++c);c+=c++后c 值为11,再自增为12A 13B 14C 15D 164.若有整型变量x 的当前值是3,则执行下列语句的结果是 。
docout<<(x-=2);while(!(-x)); 输出1,3变为1后,为逻辑真,取反为假,退出循环A 输出值0B 输出值1C 输出值3和0D 陷入死循环5.从语法的角度来看,语句if (a<=b<=c )x++;是 。
用&&或||连接逻辑表达式A 正确的B 语法正确,但在编译是会有警告信息C 语法上是错误的D 编译系统不会进行相关检查7.数学式yx y x .22 在C 程序中对应正确的表达式为 。
A .sqrt(x*x+y*y)/x*y B .SQRT(x*x+y*y)/x*yC .sqrt((x*x+y*y)/x/y)D .SQRT(x*x+y*y)/(x*y)8.设有变量说明:int x ;则表达式(x=4*5,x*5),x+25的值为 。
A .20B .45C .100D .12510.在C++语言中,下面符号串中,能用作变量名的标识符为 。
A .autoB .putsC .-1*numD .2-and11.下面四个用户定义的标识符中,只有一个 是正确的。
A caseB _53C a&bD ab-c12.在16位系统中,对整型变量int i=32767;++i 的值是 。
补码,有符号整数A -1B 0C -32768D 3276814.已知整型变量a 和b 的当前值分别为13和20,a||b 的值是 。
A 0B 1C 4D 2915.在32位系统中求表达式s=10!的值时,变量s 的类型应当是 。
C语言习题答案2012年版
3.变量k为float类型,调用函数:
scanf("%d", &k);
不能使变量k得到正确数值的原因是:
scanf("%d", &k);中的格式控制类型与变量k的定义类型不匹配,应将%d改为%f.
习题4
选择题
1.B 2.A 3.B 4.B 5.C 6.B
阅读程序,写结果
7.12 8.13 9.*0**2*
}
2.编程实现:用格式输入/输出函数输入3个字符,将它们反向输出并输出它们的ASCII值。
参考代码(尽量运用本章所学知识)
#include <stdio.h>
main()
{ char c1,c2,c3;
scanf ("%c%c%c", &c1, &c2, &c3);
printf("%c%d,%c%d,%c%d ", c3,c3,c2,c2,c1,c1);
printf("%4d%4d%4d%4d",a,b,c,d);
}
12.据Байду номын сангаас输入的3条边长值,判断它们能否构成三角形,如能构成,再判断是等腰三角形、直角三角形还是一般三角形?
源程序:
#include<stdio.h>
#include "math.h"
main()
{float a,b,c,s,area;
}while (fabs(k)>1.0e-6);
printf("pi is %lf",4*pi);
}
18.求两个数的最大公约数和最小公倍数。最大公约数:用大数整除小数,得到余数1;再用小数整除余数1,得到余数2;再用余数1整除余数2,……直到余数为0。最小公倍数:两数相乘再除以最大公约数。
2012春季计算机等级二级c语言上机考试及答案
2012年春季计算机等级考试二级c语言上机试题及参考答案共有50套题目(现将程序填空题、程序改错题、编程题分别整理,方便考生逐项复习)一、程序填空题1、给定程序中,函数fun的功能是:在任意给定的9个正整数中找出按升序排列时处于中间的数,将原数据序列中比该中间数小的数用该中间数替换,位置不变,在主函数中输出处理后的数据序列,并将中间数作为函数值返回。
例如,有9个正整数:1 5 7 23 87 5 8 21 45按升序排列时的中间数为:8处理后主函数中输出的数列为:8 8 8 23 87 8 8 21 45请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!#include <stdio.h>#define N 9int fun(int x[]){ int i,j,k,t,mid,b[N];for(i=0;i<N;i++) b[i]=x[i];for(i=0;i<=N/2;i++){ k=i;for(j=i+1;j<N;j++) if(b[k]>b[j]) k=j;if(k != i ){/**********found**********/t=b[i]; b[i]=___1___; b[k]=t;}}/**********found**********/mid=b[___2___];for(i=0; i<N; i++)/**********found**********/if(x[i] ___3___ mid) x[i]=mid;return mid;}main(){ int i, x[N]={1,5,7,23,87,5,8,21,45};for(i=0; i<N; i++) printf("%d ",x[i]);printf("\nThe mid data is: %d\n",fun(x));for(i=0; i<N; i++) printf("%d ",x[i]);printf("\n");}2、给定程序中,函数fun的功能是建立一个N×N的矩阵。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
有以下程序#include <stdio.h>void main(){ char k; int i;for(i=1;i<3;i++){ scanf("%c",&k);switch(k){ case '0': printf("another\n");case '1': printf("number\n");}}}程序运行时,从键盘输入:01↙,程序执行后的输出结果是___anothernumbernumber下面程序的输出是_x=4 ___。
#include<stdio.h>main(){ int i,j,x=0;for(i=0;i<2;i++){ x++;for(j=0;j<-3;j++){ if(j%3)continue;x++;}x++;}设x为int型变量,则执行以下语句后,x的值为:0int x = 10;x*=x/=-x;printf("%d\n", --x);若有代数式(其中e代表自然对数的底数,不是变量),则以下能够正确表示该代数式的C语言表达式是sqrt(fabs(pow(n,x)+exp(x)))有如下程序#include <stdio.h>void main(){ int x=1,a=0,b=0;switch(x){case 0: b++;case 1: a++;case 2: a++;b++;}printf("a=%d,b=%d\n",a,b);}该程序的输出结果是______。
a=2,b=1若有int a=2,b=5,则a / b 的结果为:0在C语言中,合法的基本数据类型关键字是______。
long下面四个选项中,合法的用户自定义标识符是:()a_b3有以下程序#include <stdio.h>void main(){ int i;for(i=0;i<3;i++)switch(i){ case 1: printf("%d",i);case 2: printf("%d",i);default: printf("%d",i);}}执行后输出的结果是______。
011122已知字母A的ASCII码为十六进制数41,则下面程序段的运行结果为:(67 C )char c='A';c=c+'F'-'D';printf("%d %c\n",c,c);若变量已正确定义,有以下程序段int i=0;do printf("%d,",i); while(i++);printf("%d\n",i);其输出结果是0,1#include <stdio.h>{int a=0, b=0;a=10; /*给a赋值*/b=20; /*给b赋值*/printf("a+b=%d\n",a+b); /*输出计算结果*/}程序运行后的输出结果是a+b=30对于一个正常运行的C程序,以下叙述中正确的是程序的执行总是从main函数开始,在main函数结束有以下程序#include <stdio.h>{ int i,j,m=55;for(i=1;i<=3;i++)for(j=3;j<=i;j++) m=m%j;printf("%d\n",m);}程序的运行结果是1若x和y都是int型变量,x=100、y=200,且有下面的程序片段printf("%d",(x,y) );上面程序片段的输出结果是___200___。
下列条件语句中,功能与其他语句不同的是______。
if(a==0) printf("%d\n",x); else printf("%d\n",y);以下叙述中正确的是______。
C程序中注释部分可以出现在程序中任意合适的地方有以下程序#include <stdio.h>void main(){ char a,b,c,d;scanf("%c,%c,%d,%d",&a,&b,&c,&d);printf("%c,%c,%c,%c\n",a,b,c,d);}若运行时从键盘上输入:6,5,65,66↙。
则输出结果是______。
6,5,A,B以下合法的字符型常量是'\x13'以下程序执行后sum的值是_不确定_____。
#include <stdio.h>void main(){ int i, sum;for(i=1;i<6;i++)sum+=i;printf("%d\n",sum);}有如下程序#include <stdio.h>void main(){int n = 9;while(n>6){n--;printf("%d",n);}}该程序的输出结果是__876____。
若执行下面的程序时从键盘上输入3和4,#include <stdio.h>void main(){ int a,b,s;scanf("%d %d",&a,&b);s=a;if(a<b)s=b;s=s*s;printf("%d\n",s);}则输出是___16___。
设a和b均为double型常量,且a=5.5、b=2.5,则表达式(int)a+b/b的值是______。
6.000000设变量x为float型且已赋值,则以下语句中能将x中的数值保留到小数点后两位,并将第三位四舍五入的是______。
x=(int)(x*100+0.5)/100.0;以下4组用户定义标识符中,全部合法的一组是__①____。
①②③④_main If txt intenclude -max REAL k_2sin turbo 3COM _001在C语言的双目运算中要求运算数必须是整型的运算符是( )。
%以下叙述正确的是______。
C语言以接近英语国家的自然语言和数学语言作为语言的表达形式假定w、x、y、z、m均为int型变量,有如下程序段:w=1;x=2;y=3;z=4m=(w<x)?w:x; m=(m<y)?m:y; m=(m<z)?m:z;则该程序段执行后,m的值是______。
1有以下程序#include <stdio.h>void main(){ int a=5,b=4,c=3,d=2;if(a>b>c)printf("%d\n",d);else if((c-1>=d)==1)printf("%d\n",d+1);elseprintf("%d\n",d+2);}执行后输出的结果是______3。
以下程序段的输出结果是。
main(){int a=10,b=50,c=30;if(a>b)a=b;b=c;c=a;printf("a=%d b=%d c=%d\n",a,b,c);}a=10 b=30 c=10以下关于long、int和short类型数据占用内存大小的叙述中正确的是由C语言编译系统决定若要求表示“a不等于0”的关系,则能正确表示这一关系的表达式为a!=0有定义语句:int a=1,b=2,c=3,x;,则以下选项中各程序段执行后,x的值不为3的是______。
if (a<3) x=3;if (a<2) x=2;if (a<1) x=1;若有char c;则正确的赋值表达式是c='\101'下列叙述中正确的是在switch语句中,不一定使用break语句以下程序的输出结果是___31___。
#include <stdio.h>void main(){int a=0,i;for(i=1;i<5;i++){ switch(i){case 0:case 3:a+=2;case 1:case 2:a+=3;default:a+=5;}}设a=5、b=6、c=7、d=8、m=2、n=2,执行(m=a>b)&&(n=c>d)后n的值为__2____。
把C语言的源程序变为目标程序要经过( 编译)下面程序的功能是输出以下形式的金字塔图案:****************#include <stdio.h>void main(){ int i,j;for(i=1;i<=4;i++){ for(j=1;j<=4-i;j++)printf(" ");for(j=1;j<=______;j++)printf("*");printf("\n");}在下划线处应填入的是______。
2*i-1有以下程序#include <stdio.h>void main(){ int k=4,n=0;for( ; n<k ; ){ n++;if(n%3!=0) continue;k--; }printf("%d,%d\n",k,n);}程序运行后的输出结果是__3,3____。
下面程序#include <stdio.h>void main(){ int x=100, a=10, b=20, ok1=5, ok2=0;if(a<b)if(b!=15)if(!ok1) x=1;else if(ok2) x=10;x=-1;printf("%d\n",x);}的输出是__-1 ____。
设变量a是整型,f是单精度型,i是双精度型,则表达式20+'a'+i*f值的数据类型是(double )有如下程序段int a=14,b=15,x;char c='A';x=(a && b) && (c<'B');执行该程序段后,x的值为___1___。
以下4个选项,不能看作一条语句的是______。
if(b==0)m=1;n=2;下列叙述中错误的是一个C语言程序只能实现一种算法已知int x=12,y=3;执行下述程序后,变量x的值是_程序运行有错误___。