湖南大学2012年C语言真题
2012年9月c语言考试真题

简答题1.么是低级语言,高级语言,面向过程的语言,面向对象的语言?2.C语言的特点?(8个特点)4.表达式在计算时,其类型如何确定?5. C语言中,如何实现类型的转换?选择题1.以下字符串可以为用户定义的标示符的是 D。
A. shortB. LINE 5C. nextday D. _my2.设c是字符变量,则以下表达式正确的是B。
A. c=1234B. c='c'C. c="c" D. c="abcd"3.类型修饰符unsinged不能修饰下面的D类型。
A. intB. charC.long D. double4.下列正确的字符常量是D。
A. ' \234'B. ' \af'C. "a" D. ' a'8.以下选项中不正确的整型常量是__C__。
A. 12LB. -10C.1,900 D. 123U5. 若有语句:int a,b,c;则下面输入语句正确的是C。
A. scanf(" %D%D%D",a, b, c);B. scanf("%d%d%d",a,b,c);C.scanf("%d%d%d",&a,&b,&c);D. scanf("%D%D%D",&a,&b,&c);6.int m=546, n=765;printf(" m=%-6d,n=%6d",m,n);则输出的结果是B。
A. m=546,n=765B. m=546 ,n= 765C. m=%546,n=%765D.m= 546,n=7657.有如下程序:main( ){int x;float y;scanf("%3d%f",&x,&y);printf("x=%d,y=%f\n",x,y);}其输入数据为12345 678↙,则输出结果为 D 。
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程序设计基础C语言 考试样卷

程序设计基础(C语言)考试卷(2012春本科样卷)(理论部分)考试时间120分钟,答案请写在答题卡上一、信息技术题(每小题1分共10分)1.信息技术指的是用来扩展人的信息器官功能、协助人们进行信息处理的一类技术。
在下列基本信息技术中,用于扩展人的效应器官功能的是_____________ 。
A.感测与识别技术B.计算与处理技术C.通信与存储技术D.控制与显示技术2.下列有关PC机辅助存储器的叙述中,错误的是。
A.硬盘的盘片转动速度特别快,目前一般为每秒数千转B.近年来使用的串行ATA(SATA)接口硬盘,其传输速率比采用IDE接口的要快C.目前移动硬盘大多采用USB 2.0接口,其传输速率可达每秒数十兆字节D.40倍速的CD-ROM驱动器的速率可达6MB/s左右3.根据存储器芯片的功能及物理特性,目前用作优盘存储器芯片的____________。
A.SRAMB.SDRAMC.EPROMD.Flash ROM4.PC机的机箱外面常有很多接口,用来连接外围设备。
下列接口中,不在机箱外面的是________。
A.IEEE 1394 B.PS/2 C.SATA D.USB 5.在下列有关Microsoft Excel 97/2000/2003功能和操作的叙述中,错误的是________ 。
A.进行数据排序时,最多可以依据3个关键字B.Excel工作表可以另存为网页文件C.在默认情况下,数值型数据右对齐、字符型数据左对齐D.在默认情况下,若用户在某单元格中输入“3/2”(引号不是输入的字符),则显示1.56.因特网使用TCP/IP协议实现全球范围的计算机网络互连,连接在因特网上的每一台主机都有一个IP地址。
下面不能作为IP 地址的是________。
A.120.34.0.18 B.201.256.39.68C.21.18.33.48 D.37.250.68.07.接入Internet的方式不同,则所需设备和上网性能也有所不同。
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。
湖南省07-12年高考C语言真题

C语言真题(2007-2012)湖南省2007年五、程序设计题(本大题共4题,共90分)1、程序分析题。
写出下列程序运行的结果。
(每小题5分)(1)#include <stdio.h>main(){ int x=3;do {printf("%d",x-=2);} while(!(--x));}运行结果是_____________________________(2)#include<stdio.h>main(){int x=4,y=8,z;z=x<<2|y;printf("%d",z);}运行结果是_____________________________(3)#include <stdio.h>main(){ char x='E',y='e';printf("%c,",x=32);printf("%c,",(x--,++y));printf("%c\n",x==y?x+=32;y-=32);}运行结果是_____________________________(4)#include <stdio.h>main(){ int t=2;while (t<5)switch(t%2){ case 0:t++;printf("#");break;case 1:t+=2;printf("*");default:printf("\n");}}运行结果是_____________________________ (5)#include <stdio.h>main(){ char str1{50}=" Beijing 2008!",*q=str1;char str2[50]=" One World One Dream!",*p=str2;while(*p!='\0')p++;while(*q!='\0')P++=q++;*p='\0';printf("%s",str2);}运行结果是_____________________________(6)#include <stdio.h>#include <string.h>main(){ char s[]="abcdefg",t;int i=0,j=strlen(s)-1;while (i<j){ t=s[j];s[j]=s[i];s[i]=t;i++;j--}puts(s);}运行结果是_____________________________2、程序填空(每空5分,共30分)(1)下面程序的功能是求1000以内的完数。
2012计算机二级C笔试真题及答案

全国计算机等级考试二级C语言2012年3月试题及答案一、填空题1、C语言中基本的数据类型有:__________、__________、__________。
2、C语言中普通整型变量的类型说明符为__________,在内存中占__________字节,有符号普通整型的数据范围是__________。
3、整数-35在机内的补码表示为__________。
4、执行下列语句int a=8;a+=a-=a*a;后,a的值是__________。
5、有如下语句:char A[]={”I am a student”};该字符串的长度是__________,A[3]=__________。
6、符号”a”和’a’的区别是__________。
7、所谓“指针”就是__________。
“&”运算符的作用是__________。
“*”运算符的作用是__________。
8、有如下输入语句:scanf(“a=%d,b=%d,c=%d”,&a,&b,&c);为使变量a的值为1,b的值为3,c的值为2,从键盘输入数据的正确形式应是__________。
二、选择题1、设整型变量a为5,使b不为2的表达式是()。
A.b=a/2B.b=6-(--a)C.b=a%2D.b=a>3?2:12、为了避免嵌套的条件分支语句if-else的二义性,C语言规定:C程序中的else总是与()组成配对关系。
A.缩排位置相同的ifB.在其之前未配对的ifC.在其之前未配对的最近的ifD.同一行上的if3、以下程序的输出结果是()。
int x=10,y=10;printf(“%d%d\n”,x--,--y);A.1010B.99C.910D.1094、设A为存放(短)整型的一维数组,如果A的首地址为P,那么A中第i个元素的地址为()。
A.P+i*2B.P+(i-1)*2C.P+(i-1)D.P+i5、选出下列标识符中不是合法的标识符的是()。
C语言程序设计2012 (含答案)(1)

12年的试题比13年的难很多,笔者费了一早上加一中午才全部做完。
如果对答案有疑问或者觉得哪里有问题请联系我qq553915228 李添锐一、写出下列程序段的运行结果(40分)1、(4分)char a='D'-'A',b='\010',c,d;c = ++a || b++;d = a-- && b--;printf("%d,%d,%d,%d",a,b,c,d);输出:3,7,1,12、(4分)char a=0x123FFF;printf("%d,",a);a=127;printf("%d",++a);输出:-1,-1283、(4分)int a=5,y=0;int main(){while(a=5){a+=5;y+=a;printf("%d,%d,", a, y);if (y>18) break;}return 0;}输出:10,10,10,204、(4分)int i=1, j=2, k=4;printf("%f,", i-(float)j/k);printf("%d,", j>1<k);k+=5/10*i ;printf("%d,",k);printf("%d", (j=1)?2:0);输出:0.500000,1,4,25、(4分)int a[][2]={(1,2),(3,4)};printf("%d",a[0][1]);输出:46、(4分)int ave(int x, int y){return (x+y)/2;}int main(){int a=1, b=2, c=3;printf("%d\n",ave(ave(a,b), ave(b,c)));return 0;}输出:1(\n)7、(4分)void exc(int x, int *y){int t;t=x; x=*y; *y=t;}int main(){int a=5,b=8;exc(a,&b);printf("a=%d,b=%d",a,b); return 0;}输出:a=5,b=58、(4分)char str[10]="believe";char *p=str;*(str+5)=0;puts(2+p);输出:lie9、(4分)struct pt{int x; int y;} p[2]={1,3,5,7}; printf("%.3f",p[1].y/(float)p[0].y+ p[1].x/p[0].x);输出:7.33310、(4分)FILE *fp;char c=49;int d=50, e;fp=fopen("a.tmp","w"); fprintf(fp,"%c%d", c, d); fclose(fp);fp=fopen("a.tmp","r"); fscanf(fp,"%d",&e); printf("%d\n",e);输出:150(\n)二、改错题(20分)以下程序实现:从键盘输入若干个学生的成绩数据,将这些数据存到磁盘文件上,并求这些学生的最高成绩。
全国计算机等级考试二级C语言真题2012年09月-36次

窗体顶端11. 以下叙述中正确的是()。
A) 在C语言程序中,main函数必须放在其它函数的最前面B) 每个后缀为.C的C语言源程序都可以单独进行编译C) 在C语言程序中,只有main函数才可单独进行编译D) 每个后缀为.C的C语言源程序都应该包含一个main函数A B C D 未答题该题得分:0正确答案:B试题来源:全国计算机等级考试二级C语言真题2012年09月-36次【解析】:12. C语言中的标识符分为关键字、预定义标识符和用户标识符,以下叙述正确的是()。
A) 预定义标识符(如库函数中的函数名)可用作用户标识符,但失去原有含义B) 用户标识符可以由字母和数字任意顺序组成C) 在标识符中大写字母和小写字母被认为是相同的字符D) 关键字可用作用户标识符,但失去原有含义A B C D 未答题该题得分:0正确答案:A试题来源:全国计算机等级考试二级C语言真题2012年09月-36次【解析】:13. 以下选项中表示一个合法的常量是(说明:符号口标识空格)A)9口9口9 B)0Xab C) 123E0.2 D)2.7eA B C D 未答题该题得分:0正确答案:B试题来源:全国计算机等级考试二级C语言真题2012年09月-36次【解析】:14. C语言主要是借助以下哪个功能来实现程序模块化()。
A) 定义函数 B) 定义常量和外部变量 C) 三种基本结构语句 D)丰富的数据类型A B C D 未答题该题得分:0正确答案:A试题来源:全国计算机等级考试二级C语言真题2012年09月-36次【解析】:15. 以下叙述中错误的是()。
A) 定义符号常量必须用类型名来设定常量的类型B) 用符号名表示的常量叫符号常量C) 非零的数值型常量有正值和负值的区分D) 常量是在程序运行过程中值不能被改变的量A B C D 未答题该题得分:0正确答案:A试题来源:全国计算机等级考试二级C语言真题2012年09月-36次【解析】:16. 若有定义和语句:int a,b;scanf(“%d,%d”,&a,&b);以下选项中的输入数据,不能把值3赋给变量a、5赋给b变量的是()。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
请使用递归算法实现该函数。如 n=8 时,结果是 21。 #include<stdio.h> long Fibo(int n); void main() {
A. 3
B. 4
C. 5
D. 不定
16. 有关函数参数,下列说法不正确的是
A.实参可以将数据传给形参;
B. 实参和形参是不同的变量;
C.形参可以将数据传给实参;
D. 实参和形参必须个数相等,类型一致。
17. 定义函数时,若函数的类型缺省,则函数的默认类型是
A. char
B. void
C. float
5. 若有语句:
int i=0;
switch(i)
{ case 0: i+=1;
case 1: i+=1;
case 2: i+=1;
default: i+=1;
}
执行上面的语句后,变量 i 的正确结果为多少?
A. 1
B. 2
C. 3
D. 4
6. 若有语句:char s[15];
scanf(“%s”,s);
2. #include<stdio.h> void main() { int x=1,y=0,a=0,b=0;
switch(x) { case 1:
switch(y) { case 0:a++;break;
case 1:b++;break; } case 2:a++;b++;break; case 3:a++;b++; } printf("a=%d,b=%d\n",a,b); }
四、程序理解题。阅读下面的程序,写出程序的运行结果(每小题 6 分,共 30 分)。
1. #include<stdio.h> void main() {
int i,j,x=0; for(i=0;i<2;i++) { x++;
for(j=0;j<=3;j++) { if(j%2) continue;
x++; } x++; } printf("x=%d\n",x); }
例如:若有二维数组中的数据为 33 33 33 33 44 44 44 44 55 55 55 55
则一维数组中的内容为:33 44 55 33 44 55 33 44 55 33 44 55。 #include<stdio.h> void fun(int (*s)[10],int *b,int *n,int mm,int nn); void main() {
例如:a=37、b=62,合并和的数:c=7236 #include<iostream.h> void fun(int a,int b,long *c); void main() {
int a,b; long c; cout<<"Input a,b;"<<endl; cin>>a>>b; fun(a,b,&c); /*函数调用*/ cout<<"The result is:\n"<<c<<endl; }
20. 下列语句中,将 f 定义为文件型指针变量的语句是
A. FILE f;
B. FILE *f;
C. file f;
D. ‘10’ D. file *f;
二、判断题。判断下列各命题是否正确,正确请标记√,不正确请标记×(每小题 2 分,共 30 分)。 1. C 语言是一种计算机高级语言。 2. C 语言不允许直接访问物理地址,不能进行位操作。 3. C 语言是面向对象的程序设计语言。 4. C 程序要通过编译,连接才能得到可执行的目标程序。 5. 每一个 C 程序都必须有一个主函数 main()。 6. C 语言允许有空函数。 7. C 程序书写格式规定一行内只能写一条语句。 8. C 程序的每一条语句都给定一个行号。 9. C 语言的每个语句的最后必须有一个分号。 10. C 语言本身没有输入输出语句。 11. C 语言可用来编写应用软件,也可用来编写系统软件。 12. Turbo C 是在微机上广泛使用的编译程序。 13. C 语言的数据结构是以数据类型形式出现的。 14. 空类型不是 C 语言的数据类型。 15. C 语言中数据不分常量和变量。
4. #include<stdio.h> int i=0; int fun(int n) { static int a=2;
a++; return a+n; } void main() { int k=5; { int i=2;
k+=fun(i); } k+=fun(i); printf("k=%d\n",k); }
第3页
湖南大学信息科学与工程学院(龚小庆、李杰)(xsgongxiaoqing@)
五、编程题。完成下列各程序中的函数定义(请勿修改主函数 main 中的语句)。(每小题 10 分,共 40 分)
1. 请编写函数 void fun(int a,int b,long *c)的定义,其功能是将两个两位数的正整数 a, b 合并形成一个整数放在 c 中。合并的方式是将 a 数的个位和十位数依次在 c 数的千位和十位上, b 数的十位和个位数依次放在 c 数的个位和百位。
int n; scanf("%d",&n); long f=Fibo(n); printf("f=%ld\n",f); }
3. 请编写函数 void fun(int (*s)[10],int *b,int *n,int mm,int nn)的定义,该函数的功 能是将 M 行 N 列的二维数组中的数据,按列的顺序依次放到一维数组中。
A. (!a==1)&&(!b==0) B. (a)
C. a&&b
D. a||(b++)&&(c-a)
11. 以下 4 个选项中,不能看作一条语句的是
A. {;}
B. a=0,b=0,c=0; C. if(a>0);
D. if(b==0) m=1;n=2;
12. 已有定义:int x=3,y=4,z=5; 则表达式!(x+y)+z-1&&y+z/2 的值是
A. 6
B. -6
C. -5
D. 5
3. 若 a=10,当执行运算 a+=a-=a*a 后,a 的值为
A. 10
B. 100
C. -90
D. -180
4. 已知 int x,y; 执行逗号表达式 y=(x=4*5,x*5),x+25;后,y 的结果为多少?
A. 20
B. 100
C. 125
D. 45
static int a[5]={1,2,3,4,5},result; result=sum(a,5); printf("result=%d\n",result); } int sum(int array[],int len) {
int sum=0; for(int i=0;i<len;i++)
sum=sum+array[i]; return sum; }
printf(“%s”,s);
当从键盘上输入的值为:Hello World 时,下列输出结果中,正确的是
A.Hello
B. Hello World C. H
D. d
7. 设整型变量 a、b 的值分别为 2、3,当执行运算 b+=(++a)+(++a)后,b 的值为
A.9
B. 10
C. 11
D. 12
B. do-while 语句构成的循环只能用 break 语句退出。 C. 用 do-while 语句构成的循环,在 while 后的表达式为非零时结束循环。 D. 用 do-while 语句构成的循环,在 while 后的表达式为零时结束循环。
15. 执行语句:for(i=1;i++<4;);后,变量 i 的值是
3. #include<stdio.h> void addsub(int m,int n); void main() {
int a=10,b=15; addsub(a,b); printf("a=%d,b=%d",a,b); } void addsub(int m,int n) { int temp=m; m=m*n; n=temp-n; }
int w[10][10]={{33,33,33,33},{44,44,44,44},{55,55,55,55}},i,j; int a[100]={0},n=0; printf("The matrix:\n"); for(i=0;i<3;i++)
第4页
湖南大学信息科学与工程学院(龚小庆、李杰)(xsgongxiaoqing@)
注:所有答题(包括客观题和主观题)必须答在专用答卷纸上,否则无效。
一、单选题。在下列选项中请选择正确的选项(每题 1 分,共 20 分)。