限选中国石油大学c语言上机题答案大全(2013版)

限选中国石油大学c语言上机题答案大全(2013版)
限选中国石油大学c语言上机题答案大全(2013版)

1.2 Welcome to Beijing.

让我们来练习如何显示多行文字。

输入:无

输出:就是下面的那段文字。

#include

void main()

{printf("Welcome\n");

printf("to\n");

printf("Beijing.\n");

}

1.4 练习两个整数之间的运算

背景:基本练习。

输入:接受两个整数,每个整数之间使用空格分隔。例如输入格式为:123 444输出:分别输出进行+、-、*、/、*之后的运行结果。

#include

int main()

{intx,y;

scanf("%d%d",&x,&y);

printf("%d+%d=%d\n",x,y,x+y);

printf("%d-%d=%d\n",x,y,x-y);

printf("%d*%d=%d\n",x,y,x*y);

printf("%d/%d=%d\n",x,y,x/y);

printf("%d%%%d=%d\n",x,y,x%y);

return 0;

}

3.3 照猫画猫:计算圆柱的侧面积及体积

如果已知圆柱的底面半径r ,以及高h ,则可计算出圆柱的侧面积s=2πrh,体积v=πr 2 h 。其中π=3.1415926

输入第一行输入圆柱的底面半径r

第二行输入圆柱的高h

输出s=<圆柱的侧面积>,v=<圆柱的体积>

要求1. 所有变量都定义为双精度类型

2. 结果精确到小数点后两位

#include "stdio.h"

#define n 3.1415926

int main()

{

floatr,h,s,v;

printf;

scanf("%f%f",&r,&h);

s=2*n*r*h;

v=n*r*r*h;

printf("s=%6.2f,v=%6.2f\n",s,v);

}

3.4 分离整数

任意从键盘上输入一个三位正整数,要求正确地分离出它的个位、十位和百位,并分别在屏幕上输出。

比如输入的三位正整数

#include "stdio.h"

int main()

{

intx,hundreds,tens,units;

printf;

scanf("%d",&x);

hundreds=x/100;

tens=x%100/10;

units=x%100%10;

printf("units=%d,tens=%d,hundreds=%d\n",units,tens,hundreds);

}

3.5 鸡兔同笼

已知笼中有头h个,有脚f条,问笼中鸡兔各有多少只?

输入:头和脚的数目

输出:兔子和鸡的数目(输出语句为:printf("rabbit=%d,chicken=%d",rabbit,chicken);)Sample

输入:10 20

输出:rabbit=0,chicken=10

#include "stdio.h"

int main()

{

intchicken,rabbit,f,h;

scanf("%d%d",&h,&f);

rabbit=(f-2*h)/2;

chicken=(4*h-f)/2;

printf("rabbit=%d,chicken=%d\n",rabbit,chicken);

}

4.2 分段函数

有一分段函数,y=f(x)。当x小于6时,y=x-12;当x大于等于6且小于15时,y=3x-1;当x大于等于15时,y=5x+9.从键盘上输入一个整数x,输出对应的y值。

#include

void main()

{

intx,y;

scanf("%d",&x);

if(x<6)

y=x-12;

else if(x<15)

y=3*x-1;

else

y=5*x+9;

printf("%d\n",y);

return 0;

}

4.3 整数位数判断

输入一个不多于5位的正整数,要求: (1)求它是几位数;(2)逆序打印出各位数字。

#include

#include

#define SIZE 5

int

main(void)

{

int bit_count;//位数

long int input_num;//输入数

int result[SIZE];//存放各个位的数

int i;

scanf("%ld", &input_num);

if (input_num< 0 || input_num> 99999) {

printf("Invalid input\n");

exit(1);

}

for(bit_count = 0; input_num; ++bit_count) { result[bit_count] = input_num % 10;

input_num /= 10;

}

printf("%d\n",bit_count);

for(i = 0; i

printf("%d",result[i]);

printf("\n");

exit(0);

}

4.4 四位数拆分

输入一个四位数,判断千位、百位、十位和个位数字之和是否为偶数,如果是,输出Yes,如果不是,输出No;如果不是四位数,输出Invalid data。

#include

void main()

{

intx,a,b,c,d,e;

scanf("%d",&x);

if(x/1000<1||x/10000>=1)

printf("Invalid data\n");

else {

a=x/1000;

b=x%1000/100;

c=x%1000%100/10;

d=x%1000%100%10;

e=(a+b+c+d)%2;

if(e==0)

printf("Yes\n");

else

printf("No\n");

}

}

4.7 判断某年某月的天数

一年有365天,有的月份有31天,有的有30天,2月份闰年的时候是29天,非闰年的时候是28天。现在要求从键盘上输入一个年份和月份,输出其对应的天数。

#include

{ intyear,month,days;

scanf("%d %d", &year,&month);

switch(month)

{ case 1:

case 3:

case 5:

case 7:

case 8:

case 10:

case 12: days=31;break;

case 4:

case 6:

case 9:

case 11:days=30;break;

case 2:if((year % 4 ==0) && (year % 100 !=0) ||(year % 400==0))

days=29;

else days=28;

}

printf("%d\n",days);

}

题目描述

根据某城市普通出租车收费标准编写程序对车费进行计算。具体标准如下:起步里程为3km,起步费10元;10km以内超过起步里程部分,每千米2元,超过10km以上的部分,每千米3元。

行驶里程数(单位千米)。

输出

乘客应支付的车费(单位元),结果四舍五入,保留到元。样例输入

12.5

样例输出

nclude

int main()

{

double a,m,w;

scanf("%lf",&a);

if(a<=3)

m=10;

else if(a>3&&a<=10)

m=10+2.0*(a-3);

else

m=24+3.0*(a-10);

w=(int)(m+0.5);

printf("%.0f\n",w);

return 0;

}

5.2 打印平行四边形

问题描述

输入图形的高n ,输出如下例(n=5 )所示的图形. *****

*****

*****

*****

*****

输入

整数n例如5

输出

由*组成的高为5的平行四边形

#include

int main()

{

intN,i,j;

scanf("%d",&N);

for(i=1;i<=N;i++)

{

for(j=1;j

printf(" ");

for(j=1;j<=N;j++)

printf("*");

printf("\n");

}

}

5.3 编程计算

问题描述

编写程序,输入n的值,求:1-1/2+1/3-1/4+1/5-1/6+1/7-...+1/n (保留四位小数)输入

n的值

输出

上述算式的求和结果(结果保留四位小数)

输入样例

1

输出样例

sum=1.0000

#include

int main()

{

intn,i,j,sign=-1;double f, sum=0;

scanf("%d",&n);

for(i=1;i<=n;i++)

{

f=1.0/i;

sign=-sign;

sum=sum+sign*f;

}

printf("sum=%.4lf\n",sum);

}

5.4 分数序列

问题描述

有一个分数序列:,输入整数n,求出其前n项的和。

输入

整数n

输出

上述分数序列的前n项之和提示:输出语句格式为printf("sum=%16.10f\n",s);

输入样例

1

输出样例

sum= 2.0000000000

#include

int main()

{

inti,n,k;doublef,sum=0,a=1.0,b=1.0;

scanf("%d",&n);

for(i=1;i<=n;i++)

{

k=a;

a=b;

b=a+k;

f=b/a;

sum=sum+f;

}

printf("sum=%16.10lf\n",sum);

}

5.5 求e的值

问题描述

编写程序,从键盘输入整数n , 求 e 的值。e=1+1/1!+1/2!+1/3!+..+1/n! 注意:用double 型数据计算。

输入

整数n

输出

e的值

提示:输出语句printf("e=%16.10f\n",e);

输入样例

2

输出样例

e= 2.5000000000

#include

void main()

{

intn,i,j;doublek,f,sum=1;

scanf("%d",&n);

for(i=1;i<=n;i++)

{

for(j=1,k=1;j<=i;j++)

k=k*j;

f=1.0/k;

sum=sum+f;

}

printf("e=%16.10lf\n",sum);

}

5.6 最大公约数

问题描述

输入两个正整数m和n,求它们的最大公约数和最小公倍数输入

两个正整数m和n

输出

m和n的最大公约数和最小公倍数

输入样例

2 8

输出样例

the greatest common divisor is 2

the least common multiple is 8

#include

int main()

{

intm,n,r,t,M,N,a,b,c;

scanf("%d%d",&m,&n);

if(m

{t=m;

m=n;

n=t;

}

a=m;

b=n;

while((r=m%n)!=0)

{ m=n;

n=r;}

printf("the greatest common divisor is %d\n",n);

M=a/n;

N=b/n;

c=M*N*n;

printf("the least common multiple is %d\n",c);

return 0;

}

5.9 素数

问题描述

输入两个正整数m和n,求出[m,n]区间的所有素数输入

两个整数m和n

输出

[m,n]区间的所有素数

输入样例

2 10

输出样例

2 3 5 7

#include

int main()

{

intm,n,i,j;

scanf("%d%d",&m,&n);

for(i=m;i<=n;i++)

{

for(j=2;j

if(i%j==0) break;

if(j==i) printf(" %d",i);

}

printf("\n");

return 0;

}

5.10 回文数

问题描述

输入一个正整数,判断是否为回文数。输入

一个正整数n

输出

如果是,输出Yes,否则输出No

输入样例

12321

输出样例

Yes

#include

int main()

{

inta,b,c;

scanf("%d",&a);

c=a;

b=0;

while(c>0)

{

b=b*10+(int)c%10;

c=c/10;

}

if(a==b) printf("Yes\n");

elseprintf("No\n");

}

6.2 统计素数的个数

求出 2 到m 之间( 含m,m<=1000) 所有素数并放在数组 a 中。输入:正整数m

输出:从小到大的所有素数,及个数(素数输出的时候用%4d来控制)如:

输入:10

输出:2 3 5 7

4

#include

#define N 10

int main()

{

inti,j,m,count=0;int a[N];

scanf("%d",&m);

for(i=2;i<=m;i++)

{

for(j=2;j

if(i%j==0) break;

if(i==j)

{ count++;

printf("%4d",i);

}

}

printf("\n%d\n",count);

return 0;

}

6.3 冒泡法排序

冒泡排序(BubbleSort)的基本概念是:依次比较相邻的两个数,将小数放在前面,大数放在后面。即在第一趟:首先比较第1个和第2个数,将小数放前,大数放后。然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后。至此第一趟结束,将最大的数放到了最后。在第二趟:仍从第一对数开始比较(因为可能由于第2个数和第3个数的交换,使得第1个数不再小于第2个数),将小数放前,大数放后,一直比较到倒数第二个数(倒数第一的位置上已经是最大的),第二趟结束,在倒数第二的位置上得到一个新的最大数(其实在整个数列中是第二大的数)。如此下去,重复以上过程,直至最终完成排序。由于在排序过程中总是小数往前放,大数往后放,相当于气泡往上升,所以称作冒泡排序。

编写程序,对输入的十个数按照从小到大排序

#include

#define N 10

int main()

{

inti,j,t;int a[N];

for(j=0;j

scanf("%d",&a[j]);

for(i=0;i

for(j=1;j

if(a[j]

{

t=a[j-1];

a[j-1]=a[j];

a[j]=t;

}

for(j=0;j

printf(" %d",a[j]);

printf("\n");

return 0;

}

6.4 插入法排序

如果一个数组中保存的元素是有序的(由小到大),向这个数组中插入一个数,使得插入后的数组元素依然保持有序。

定义一个数组,长度为11,初始元素为10个,按照从小到大的方式输入,然后输入一个要插入的元素,使得插入后仍然有序。

#include

int main()

{

inti,j,n,m;int a[11];

for(i=0;i<10;i++)

scanf("%d",&a[i]);

scanf("%d",&n);

a[10]=n;

for(i=10;i>0;i--)

if(a[i]

{

m=a[i];

a[i]=a[i-1];

a[i-1]=m;

}

for(i=0;i<11;i++)

{

printf(" %d",a[i]);

}

printf("\n");

return 0;

}

6.7 求最大值

问题描述

要求从键盘输入10个整型数据,找出其中的最大值并显示出来。输入范例

3 0 5

4 -710 27 32767 10 1 500 2

输出范例

32767

提示

最新C语言程序设计模拟试题5(附答案)

《C语言程序设计》模拟试题五 一、填空题(40分) 1.计算机软件分为和;C语言适合编 写 . 2.十进制数35=( ) 2 =( ) 8 =( ) 16 3.已知一个数[X]补=11111001,求[X] 原 = 及 X= . 4.设x=2.5,a=7,y=4.7.求下列算术表达式的值. x+a%3*(int)(x+y)%2/3= . 5.将算式|3-e x ln(1+Y)|写成C语言表达 式. 6.设a=5,b=9.则printf(“a=%d,b=%4d”,a,b)输出为: . 7.用C语句写出累加器、累乘 器、计数器. 8.上机操作时,CTRL+F9键的功能是 ,F2键的功能 是ALT+F5键的功能是 . 9.下列程序段对应的数学表达式 是 int t,n,s=0; scanf(“%d”,&n); for(i=1;i<=n;i++) { t=1; for(j=1;j<=i;j++) t=t*j; s=s+t;} 10.以下程序用“顺序查找法”查找数组a中是否存在某一关键字. 请填空. main() {int a[10]={25,57,48,38,12,92,88,48,16,25}; int i,x; scanf(“%d”,&X); for(i=0;i<10;i++) if (x==a[i]) {printf(“Found!The index:%d\n”a[i]);(1) ;} if (2) printf(“Can not found!”); }

二、单选题(15分) 1.一个C程序的执行是从 . A.本程序的main()函数开始,到main函数结束. B.本程序文件的第一个函数开始,到本程序文件的最后一个函数结束. C.本程序的main()函数开始,到本程序文件的最后一个函数结束. D.本程序文件的第一个函数开始,到本程序main函数结束. 2.根据下面的程序及数据的输入和输出形式,程序中输入语句的正确形式 为 . main() { int a,b,c; 输入语句; printf(“%c%c%c”,a,b,c); } 输入形式:A B C 输出形式:ABC A.scanf(“%c%c%c”,&a,&b,&c); B.scanf(“%c,%c,%c”,&a,&b,&c); C.scanf(“%c %c %c”,&a,&b,&c); D.scanf(“%c%c”,&a,&b); 3.给出下列程序的运行结果 . main() {int i,j,k,x=0; for(i=2;i<=5;i++) for(j=7;j>=3;j-=2) for(k=4;k<=11;k+=4) x++; printf(“x=%d”,x);} A.x=64 B. x=36 C.x=60 D. x=24 4.若x,i,j和k都是int型变量,则表达式计算下面表达式后,x的值 为 . x=(i=4,j=16,k=32) A. 4 B. 16 C.32 D.52 5.以下不正确if语句形式是 . A.if ( x>y && x!=y ); B.if ( x = = y ) x + = y; C. if ( x != y ) scanf(“%d”,&x) else scanf(“%d”,&y);

西工大C语言上机考试题库

1:2:3 #include #include int main() { int i=0,j=0,k=0,a=0,b=0,c=0,l=0,m=0,n=0,d=0,p=0,q=0; for(i=1;i<=3;i++) { for(j=1;j<=9;j++) { if(i!=j) { for(k=1;k<=9;k++) { if(k!=j&&i!=k) { a=i*100+j*10+k; b=a*2; c=a*3; l=b%10,d=c%10; m=(b%100)/10,p=(c%100)/10; n=b/100,q=c/100; if(l!=0&&m!=0&&n!=0&&d!=0&&p!=0&&q!=0) if(i!=l&&i!=m&&i!=n&&j!=l&&j!=m&&j!=n&&k!=l&&k!=m&&k!=n) if(i!=d&&i!=p&&i!=q&&j!=d&&j!=p&&j!=q&&k!=d&&k!=p&&k!=q) if(l!=d&&l!=p&&l!=q&&m!=d&&m!=p&&m!=q&&n!=d&&n!=p&&n!=q) printf("%d %d %d\n",a,b,c); } }

} } } return 0; } 8 #include"stdio.h" int main() { int a,b[10],m=0,n=0,p; int i,j,k; scanf("%d",&a); for(i=1;i<=a;i++) { m=0; n=0; p=i; for(j=0;p!=0;j++) { b[j]=p%10; p=p/10; } for(k=0;k

C语言程序设计模拟试题1附答案

《C语言程序设计》模拟试卷一 一、单项选择题(每题2分,共30分) 1、下列有关C语言的叙述中错误的是()。 A) C语句必须以分号结束 B) 任何一个C程序中有且只有一个主函数 C) 复合语句在语法上可被看作一条语句 D) C程序中对数据的任何操作都可由运算符实现 2、以下不能定义为用户标识符的是()。 A) MAIN B) _HJ C) 2ong D) LINE1 3、下列符号中用来表示C语言中的回车换行的是()。 A) \r B) \n C) \b D) \t 4、如有如下定义:int a=1,则语句printf(“%d,%d”, a, ++a);的运行结果为()。 A) 1, 1 B) 1, 2 C) 2, 2 D) 2, 1 5、已知ch为字符型变量,下面表达式中正确的是()。 A) ch=’\xff ’B) ch=’\ff ’C) ch=’ ff ’D) ch=” ff ” 6、以下能正确定义一维数组的是()。 A) int a[5]={0,1,2,3,4,5}; B) int a[5]=”012345”; C) char a[ ]=”012345”;D) char a[5]={0,1,2,3,4,5}; 7、以下语句中能正确定义变量并赋初值的是()。 A) char c=65; B) float f=f+1.1; C) double x=12.3e3.6; D) int m=n=2.0; 8、在执行下列程序时输入:1357924,则程序的运行结果为()。 main( ) { int x, y; scanf(“%2d%2d”,&x,&y); printf(“%2d”,x*y); } A) 13 B) 1357 C) 74 D) 741 9、执行下列程序段后输出的结果是()。

C语言上机题库百科园第2章!南信大!

第二章 若有数学式3ae bc,则不正确的C语言表达式是() A.3*a*e/b*c B.a/b/c*e*3 C.3*a*e/b/c D.a*e/c/b*3 设:int a=1,b=2,c=3,d=4,m=2,n=2;执行(m=a>b) && (n=c>d)后n的值为()。 A.4 B.3 C.2 D.1 下列表达式中,不满足"当x的值为偶数时值为真,为奇数时值为假"的要求的是() A.(x/2*2-x)==0 B.!(x%2) C.!(x%2==0) D.x%2==0 表达式18/4*sqrt(4.0)/8值的数据类型为()。 A.char B.double C.不确定 D.float 在C语言中,要求运算数必须是整型的运算符是( ) A.% B./ C.++ D.!= 若x,i,j和k都是int型变量,则计算表达式x=(i=4,j=16,k=32)后,x的值为()。 A.4

C.16 D.52 C语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符( ) A.必须为下划线 B.必须为字母 C.可以是字母、数字和下划线中的任意一种 D.必须为字母或下划线 若a是数值类型,则逻辑表达式(a==1)||(a!=1)的值是( ) A.不知道a的值,不能确定 B.0 C.2 D.1 判断字符型变量c1是否为数字字符的正确表达式为( ) A.(c1>='0')&&(c1<='9') B.(c1>=0)&&(c1<=9) C.('0'>=c1)||('9'<=c1) D.'0'<=c1<='9' 下面四个选项中,均是合法的用户标识符的选项是()。 A._123 temp INT B.A p_o do C.b-a goto int D.float lao _A 以下关于C语言数据类型使用的叙述中错误的是( ) A.若要处理如"人员工资"的相关数据,单精度类型 B.若只处理"真"和"假"两种逻辑值,应使用逻辑类型 C.若要保存带有多位小数的数据,应使用双精度类型 D.若要准确无误差的表示自然数,应使用整数类型 假设所有变量均为整型,则表达式(a=2,b=5,b++,a+b)的值是()。 A.7 B.8 C.6 D.2 下面正确的字符常量是()

中国石油大学(北京)C语言习题册模拟1答案

模拟一 一、选择题(每题2分,共20分) 1、D 2、D 3、A 4、C 5、D 6、A 7、A 8、A 9、C 10、B 二、读程序写结果(每题3分,共21分) 1、9,11,9,10 2、>=60<60error 3、9,3 4、45 5、*+++* +*+*+ ++*++ +*+*+ *+++* 6、7,14 7、hina ina na 三、程序填空(每空2分,共20分) 1、(1) N/2 (2) a[N-1-k] (3) knext=p; p->next=p2; 五、编程题(第1题9分,第2、3题各10分,共29分)

1、定义1分,输出3分,处理5分 main() { int i,i1,i2,i3; for(i=100;i<1000;i++) { i1=i/100; i2=i/10%10; i3=i%10; if(i==i1*i1*i1+i2*i2*i2+i3*i3*i3) printf("%5d",i); } } 2、定义1分,输入2分,输出3分,处理4分 main() { int a[5][6],b[5]={0},i,j; for(i=0;i<5;i++) for(j=0;j<6;j++) scanf("%d",&a[i][j]); for(i=0;i<5;i++) for(j=0;j<6;j++) b[i]=b[i]+a[i][j]; for(i=0;i<5;i++) { for(j=0;j<6;j++) printf("%5d",a[i][j]); printf("%10d\n",b[i]); } } 3、输入1分,输出1分,两个函数各3分,函数调用2分int prime(int m) { int i; for(i=2;ia[j]) { t=a[i]; a[i]=a[j]; a[j]=t;}

中国石油大学简介

中国石油大学简介:中国石油大学(英语:China University of Petroleum)是教育部直属的全国重点大学,是国家“211工程”重点建设高校。是一所以工为主,多学科协调发展的教学研究型大学,是中国最早建立的也是最大的一所石油高等学府。目前已发展成一所“以工为主、工管理文相结合”的全国重点大学。中国石油大学(华东)现有东营、青岛两个校区。校园总面积300公顷,建筑面积110余万平方米。学校于1953年建校,时称北京石油学院,1969年迁校山东,改称华东石油学院。1988年,学校更名为石油大学,逐步形成山东、北京两地办学的格局。2005年1月,学校更名为中国石油大学。 2008年,中国石油大学(华东)正式确定校训为:惟真惟实。字体为刘炳森手书集成。 惟真,是指尊重客观规律,真理至上的意思。它既是一种追求真理的执著信念,又是一种不唯书、不唯上,探求事物规律的科学态度和精神。 惟实,是指求实、求是之意。做事要一切从实际出发,坚持务实、扎实、踏实的作风,做人必须具备诚实、朴实、正直、耿直的良好品质。 “惟真惟实”是中国石油大学的办学理念和追求的集中体现。近六十年来,中国石油大学的数任校领导曾在不同场合,先后提出过学校的发展目标和培养模式,其基本内涵和精髓都与“惟真惟实”是一致的。“惟真惟实”所蕴含的追求真理,全面发展的理念和精神,正是中国石油大学所一直坚持和追求的理想和目标。 “惟真惟实”既是实事求是、艰苦奋斗的学校精神的浓缩升华,也是与石油工业光荣传统一脉相承的集体体现。它内蕴着自强不息、与时俱进、追求真理的精神,体现着独有的时代气息。这一精神植根于中国石油大学的深厚文化底蕴中,便形成了以它为核心的,囊括人文精神、科学精神、文化传统的石大精神。 “惟真惟实”既体现出一种追求真理的科学精神,又体现了中国石油大学“以德育人”的人本观念,融科学精神与人文精神于一体,既有习承传统之本意,又兼具开拓进取之精神。石油大学 “211工程”(211 project ) 是中国政府为了迎接世界新技术革命的挑战,面向21世纪,要集中中央和地方的各方面力量,分期分批地重点建设100所左右的高等学校和一批重点学科、专业,到2000年左右在教育质量、科学研究、管理水平及办学效益等方面有较大提高,在教育改革方面有明显进展,力争在21世纪初有一批高等学校和学科、专业接近或达到世界一流大学的水平的建设工程。“211工程”是建国以来国家正式立项在高等教育领域进行的规模最大的重点建设工程,是国家“九五”期间提出的高等教育发展工程,也是高等教育事业的系统改革工程。 “985工程”是我国政府为建设若干所世界一流大学和一批国际知名的高水平研究型大学而实施的高等教育建设工程。名称源自1998年5月4日,江泽民在北京大学百年校庆上建设世界一流大学的讲话。最初入选985工程的高校有九所,被称九校联盟,截至2011年年末,985工程共有39所高校。此后,教育部表示“985”工程和“211”工程的规模已经稳定,将不会再新增高校,于是引入动态竞争机制,在非985工程高校且是部属211高校实施“985工程优势学科创新平台”。

C语言程序设计模拟试题A附答案

《C语言程序设计》模拟试卷A 一、单项选择题(每题2分,共20分) 1、下列有关C语言的叙述中错误的就是(D)。 A) C语句必须以分号结束 B) 任何一个C程序中有且只有一个主函数 C) 复合语句在语法上可被瞧作一条语句 D) C程序中对数据的任何操作都可由运算符实现 2、以下不能定义为用户标识符的就是(C)。 A) MAIN B) _HJ C) 2ong D) LINE1 3、以下能正确定义一维数组的就是(C)。 A) int a[5]={0,1,2,3,4,5}; B) int a[5]=”012345”; C) char a[ ]=”012345”;D) char a[5]={0,1,2,3,4,5}; 4、执行下列程序段后输出的结果就是(C)。 x = 9; while (x > 7) { printf(“*”); x- -; } A) **** B) *** C) ** D) * 5、设char str1[10] = “ABCDE”, str2[10] = “xyz”; 则执行语句 printf(“%d”, strlen(strcpy(str1, str2))); 后的输出结果就是(D)。 解析: strcpy(str1,str2); 后,str1[] 里就是"XYZ", Z 后面有字符串结束符 strcpy(str1,str2); 执行后,函数返回的就是str1, 因为str1[] 里就是新值"XYZ", 而 strlen(strcpy(str1,str2)) 就就是strlen(str1的新值),所以得3。 strlen 统计到字符串结束符以前,即,不计入字符串结束符。 A) 9 B) 8 C) 5 D) 3 6、若用数组名作为函数调用的实参,则传递给形参的就是(A)。

C语言上机题库

C语言习题集 3.11输入'A'~'F'中的一个字母,代表一个十六进制数,将其转换为十进制数,求该数与15的和并输出。 输入格式: B 输出格式: 26 #include int main(void) { char ch; int sum; ch=getchar(); sum=ch-'A'+10+15; printf("%d\n",sum); return 0; } 3.12输入三个整数,求其平均值。 输入格式: 3 5 7 输出格式: 5 #include int main(void) { int a,b,c,aver; scanf("%d %d %d",&a,&b,&c); aver=(a+b+c)/3; printf("%d\n",aver); return 0; } 3.13根据c=5/9*(f-32) 公式,输入华氏温度f,求摄氏温度c,结果精确到小数点后两位。 输入格式: 80.0 输出格式: 26.67 #include int main(void) { float f,c; scanf("%f",&f); c=5.0/9*(f-32); printf("%.2f\n",c); return 0; } 3.14输入一个四位正整数,求其各位数字之和。例如,1357的各位数字之和为1 + 3 + 5 + 7 = 16。 输入格式: 1357 输出格式: 16 #include int main(void) { int num; int a,b,c,d,total; scanf("%d",&num); a=num/1000; b=(num-a*1000)/100; c=(num-a*1000-b*100)/10; d=num-a*1000-b*100-c*10; total=a+b+c+d; printf("%d\n",total); return 0; } 3.15输入一大写字母,输出对应的小写字母。 输入格式: A 输出格式: a #include int main(void) { char c1,c2;

中国石油大学(华东)-C语言学习心得

C语言学习心得 开课之前信息的收集:在高中的时候就听过程序员这个职业,当时也只知道这些人是写程序的,然而程序是什么具体我也不知道。终于上大学了,我看到自己的课表上有C程序设计,感到很兴奋,自己终于要开始学程序。于是我问大二的学长学姐C语言学习经验,他们只对我说,有点难学(可能是他们没认真学的原因)要好好学,在老乡会上刚刚找到工作的大四学长对我讲述他求职百度的时候的经历,百度面试官问他说你会什么编程语言,他说会C,C#,java。面试官接着问你最擅长哪个,他说C语言,紧着接面试官问了一系列关于C语言的问题,一个比一个深入,他答不出来,最后的结果就是直接被拒绝。临走的时候百度面试官对他说,只要你能掌握一门编程语言就能要你。学长告诫我,信管会学很多课但都是只知道一点,因此要学既然要学一门编程就要把它学精,哪怕其它的编程语言不擅长也没关系,我现在就后悔当时没好好学。知道这些情况后我决心学好C语言。 开课后学习的经历:第一节课上,老师说由于课程的安排,前四章的知识会讲的很快,对编程有用的就说,还有些理论课下自己看看,介绍了C语言的发展和编程格式输入和输出。紧接着的上机课我写了人生的第一个程序,觉得很有意思,从此就喜欢上了编程,喜欢这种逻辑的推理与设计,课前我会将书上的知识点掌握,然后上课认真听老师讲课,看看自己有没有漏掉什么知识点,书上没说的和老师给的程序要记下来,回来后自己来体验下这个程序。就这样到了期中考试,结果并不好,让我认识到自己不能只停留在programe上,要多做acm上的题目,并且课下要多读别人的代码来学习方法,就这样白天在图书馆里看书,晚上回来编程,两个月后发现有了很大进步,也发现C语言更有趣了。我也很积极报了来年三月份的计算机二级等级考试,虽然只学了一半,但是我想通过自己的学习和请教老师,拿到那个证书应该不是问题,就这样我开始了自学后半部分,发现真的很晕,果然后面不简单。但是我想到每件事开始的时候都是困难的,就这样我坚持了下来,在老师的帮助下我也成功的过了,并且还是优秀,而且由于自己事先学过了,所以下学期的学习并没有特别困难。 通过学习Funcode让我真正的看到了C语言的应用,课上学的只是C语言的理论,而最重要的是应用。经过实验每个函数的功能,掌握每种函数的接口,再根据自己的设计将这些函数通过一定的组合和排列,制作出一个属于自己的动画,这种感觉真的很棒。我都迫不及待地想给我爱看动画的小表弟展示我制作的动画和体验我设计的游戏,虽然这些动画和游戏还比较低级,但我想他看到后一定会很开心。 一年的学习经历不仅让我C语言入门,更教会了我许多许多。教会了我如何自主学习;教会了我只要你肯努力,就能学有所成;教会了我坚持自己所喜欢的,并为之汗水,结果也一定让人满意。感谢老师一年来一直以来对我的指导和教诲,课下牺牲自己休息的时间来为我解答问题,为我提前开放作业题。 结课之后的打算:希望能通过自己的努力进入学校的ACM团队,继续深入的学习C语言,毕竟自己也才入门而已,离精通还很远。同时大二的时候去蹭课学习算法和数据结构来进一步提升自己的编程能力。

c语言上机题库 (1)

1、给定n 个数据, 求最小值出现的位置(如果最小值 出现多次,求出第一次出现的位置即可)。 2、编写程序求无理数e 的值并输出。计算公式为: e=1+1/1!+1/2!+1/3!+......+1/n! 当1/n!<0.000001时e=2.718282。 3、求一批数中最大值和最小值的积。 4、某一正数的值保留2位小数,对第三位进行四舍 五入。 5、从键盘上输入任意实数x,求出其所对应的函数值。 z=(x-4)的二次幂(x>4) z=x 的八次幂(x>-4) z=z=4/(x*(x+1))(x>-10) z=|x|+20(其他) 6、求出N ×M 整型数组的最大元素及其所在的行坐标 及列坐标(如果最大元素不唯一,选择位置在最前面 的一个)。 例如:输入的数组为: 1 2 3 4 15 6 12 18 9 10 11 2 求出的最大数为18,行坐标为2,列坐标为1。 7、求一个n 位自然数的各位数字的积。(n 是小于10的 自然数) 8、计算n 门课程的平均值,计算结果作为函数值返回。 例如:若有5门课程的成绩是:92,76,69,58,88, 则函数的值为76.599998。 9、求一批数中小于平均值的数的个数。 10、编写函数判断一个整数m 的各位数字之和能否被7整除, 可以被7整除则返回1,否则返回0。调用该函数找出 100~200之间满足条件的所有数。

11、请编一个函数void fun(int tt[M][N],int pp[N]), tt指向一个M行N列的二维数组,求出二维数组每列 中最大元素,并依次放入pp所指一维数组中。二维 数组中的数已在主函数中赋予。 12、编写函数fun用比较法对主程序中用户输入的具有10 个数据的数组a按由大到小排序,并在主程序中输出 排序结果。 13、编写main程序调用函数fact求解从m个元素选n 个元 素的组合数的个数。计算公式是:组合数=m!/(n!.(m-n)!)。 要求:m不能小于n,否则应有容错处理。 说明:函数fact(x)的功能是求x!。 14、找出一批正整数中的最大的偶数。 15、实现两个整数的交换。 例如:给a和b分别输入:60和65,输入为: a=65 b=60 16、将字符串中的小写字母转换为对应的大写字母, 其它字符不变。 17、求一个四位数的各位数字的立方和。 18、求一组数中大于平均值的数的个数。 例如:给定的一组数为1,3,6,9,4,23,35,67,12,88时,函数值为3。 19、对任意输入的x,用下式计算并输出y 的值。 5 x<10 y= 0 x=10 -5 x>10 20、求给定正整数m以内的素数之和。 例如:当m=20时,函数值为77。 21、判断整数x是否是同构数。若是同构数,函数返回1; 否则返回0。x的值由主函数从键盘读入,要求不大

c语言程序设计教程(第2版)课后题及模拟题参考答案

c语言程序设计教程(第2版)课后题及模拟题参考答案 习题1 1-1 填空题 1.函数 2.主函数main(),主函数main() 3.主函数main() 4.函数首部,函数体 5.{, } 6./*, */ 7.顺序结构,选择结构,循环结构 8..c, .obj, .exe 1-2 思考题 1.结构化程序设计是指:为使程序具有一个合理的结构以保证程序正确性而规定的一套如何进行程序设计的原则。其基本结构包括顺序结构、选择结构和循环结构三种。 2.算法是对具体问题求解步骤的一种描述。计算机算法的表达工具通常采用以下几种方法:(1)用自然语言表示算(2)用流程图表示算法(3)用伪代码表示算法(4)用程序设计语言表示算法 3.语言简洁、紧凑,使用方便、灵活; 支持结构化程序设计;运算符丰富;数据类型丰富;较强的编译预处理功能;C语言的可移植性好;C语言本身既有一般高级语言的优点,又有低级(汇编)语言的特点;语法限制不太严格,程序设计自由度大。 1-3 编程题 1. 试参照本章例题编写计算梯形面积的C语言程序,梯形的上底、下底和高分别用a,b,h表示,并用a=10,b=20,h=5测试所编写的程序。 #include "stdio.h" main() { float a, b, h, s; a=10; b=20; h=5; s=(a+b)*h/2; printf("s=%f\n" , s ); } 2. 编写程序显示如图1.11所示信息。 图1.11 显示信息 #include "stdio.h" main()

{ printf("******************************\n"); printf("* hello world *\n"); printf("******************************\n"); } 习题2 2-1 单选题 1~5 DBDCA 6~10 DCABA 11~12 CA 2-2 思考题 1.2.000000 2.1,0.5 3.9,2 4.6 5.100,d 6.(1)20 (2)0 (3)60 7. (1)10,6,4 (2)6,9,15 (3)3,60,83 8. 55 习题3 3-1 选择题 1-5BDABC 6-10ADCAC 11-12BB 3-2 填空题 1. 3 2.0261 3.0x10 4. 2, 1 互换a,b的值 5. 6.6 6.–003 8.7 7. 5.0,4,c=3 8.i=10,j=20 9.(1) 65 (2) 65,A (3) 56.123400,123.456001 (4) 3.141600 (5) 8765.432

c语言上机考试训练题库及答案

上机考试习题集 1.编写程序,一次输入5个学生的3门课成绩,每输入一个学生的3门成绩后,立即统计并输出该学生的总分和平均分。 #include "stdio.h" void main() { int score[5][3], i,j; float sum[5],average[5]; printf("请分别输入三个学生的成绩:\n"); for(i=0;i<5;i++) { sum[i]=0; for(j=0;j<3;j++) {scanf("%d",&score[i][j]); average[i]=0; sum[i]+=score[i][j]; average[i]=sum[i]/5; } } for(i=0;i<5;i++) printf("第%d个学生的总分为:%f,平均成绩为:%f\n",i+1,sum[i],average[i]); } 2 、编写程序,提示用户从键盘输入一个double类型的数,使该数保留小数点后两位,对第三位小数进行四舍五入处理,然后在显示器上输出此数,以便验证处理是否正确。 #include #include double rounding(double x,int n); void main() { double x,x1; int n; printf("请输入一个浮点数:\n"); scanf("%lf",&x); printf("请输入给定的小数位:\n"); scanf("%d",&n); x1=rounding(x,n); printf("圆整后的数为:\n%.*lf\n",n,x1); } double rounding(double x,int n)

C语言_中国石油大学(华东)c语言上机题

Hello world. 让我们用C语言向世界问好。 最早的程序基本是这个样子的: 程序一: #include <> void main() { printf("Hello world.\n"); } 程序二: #include <> int main() { printf("Hello world.\n"); return 0; } 上面的程序你任意模仿一个,看看是否可以通过?如果你能通过这个简单的程序,那就让我们继续完成后面的习题吧。 输入:无 输出:Hello world. #include<> int main() { printf("Hello world.\n"); } Welcome to Beijing. 让我们来练习如何显示多行文字。 输入:无 输出:就是下面的那段文字。 #include<> void main() {printf("Welcome\n"); printf("to\n"); printf("Beijing.\n"); } 练习最简单的printf和scanf printf函数和scanf函数是C语言中最常用的函数之一,下面让我们练习一下吧。 输入:整型变量x的值。 输出:输出整型变量x对应的十进制、八进制和十六进制形式。 认真观察-1的八进制和十六进制输出,请想想是为什么。 #include <> int main() {int x; scanf("%d",&x); printf("x=%d,",x); printf("x=%o,",x); printf("x=%x\n",x); return 0; } 练习两个整数之间的运算 背景:基本练习。 输入:接受两个整数,每个整数之间使用空格分隔。例如输入格式为:123 444 输出:分别输出进行+、-、*、/、*之后的运行结果。#include<> int main() {int x,y; scanf("%d%d",&x,&y); printf("%d+%d=%d\n",x,y,x+y); printf("%d-%d=%d\n",x,y,x-y); printf("%d*%d=%d\n",x,y,x*y); printf("%d/%d=%d\n",x,y,x/y); printf("%d%%%d=%d\n",x,y,x%y); return 0; } 学习打印你的第一个图形 背景:我们已经学习了printf函数,这里给出了一个小程序,它运行的结果是输出一个由星号(*)组成的4*4的正方形。 程序如下: #include <> int main() { printf("****\n"); printf("****\n"); printf("****\n"); printf("****\n"); return 0; } 要求:按照上面的程序范例,编写一个小程序,要求输出的是 4 行由*号组成的等腰三角形。 输入:无。 输出:指定图形。 #include <> int main() { printf(" *\n"); printf(" ***\n"); printf(" *****\n"); printf("*******\n"); return 0; } 整型数的表示范围 编写一个循环程序,输入N 值,输出N 的阶乘。关于循环程序怎么编写,可以参考教材第3章P66页的例题和第5章P82的例题的内容。注意整型数的表示范围,如果当输入的N 比较大时,例如N 等于20 时,输出怎么是负数了?自己想明白吧!#include<> void main() {int N,i; int sum=1;

C语言程序设计模拟试题2(附答案)

《C语言程序设计》模拟试卷二 一、填空题。(每空2分,共30分) 1.设有变量说明语句 int x=1,y=2; 则执行下述printf语句的输出结果是___1.000000___ _____。 printf("%f\n",1.0+x/y); 2.执行下述程序 #include main() { int x,y; scanf("%2d%*2s%1d",&x,&y); printf("%d\n",x+y); } 若从键盘输入 12345671 则程序的输出结果是__17______。 3.以下程序的功能是:从键盘上输入若干名学生的成绩(百分制,可带小数,以输入负数或0为结束标志),统计并输出最高成绩和最低成绩。请填空。 #include main() {

float x,amax,amin; scanf("%f",&x); amax=x; amin=x; while ( X>0&&X<=100 ) { if (x>amax) amax=x; else if (x

_k++ _________; d=1.0/(k*(k+1)); } while (k<=n); printf("%f\n",s); 5.执行下述程序的输出结果是_-3 -4 0 4 4 3___ ____。 #inclued main() { int a[6],i; for (i=0;i<6;i++) { a[i]=9*(i-2+4*(i>3))%5; printf("%3d",a[i]); } printf("\n"); } 6.执行下述程序时的输出结果是____6_____ ________。 #include main() { int a[]={2,4,6,},*ptr=&a[0],x=8,y,z; for (y=0;y<3;y++) z=(*(ptr+y)

模拟题c语言答案

此答案为自己所出,若有不对之处请谅解,并希望能留言 单选题(共60题,每题1分,共60分) 1. 下列符号串中,属于C语言合法标识符的个数为 (B)。 _1_2_3,a-b-c,float,9cd,a3b4 A:1 B:2 C:3 D:4 2. 下列能为字符变量 a 赋值的是:char a= (C)。 A:'ab' B:"a" C:'\0' D:"\0" 3. 在下列字符序列中,合法的标识符是(B)。 A:P12.a B:stud_100 C:$water.1 D:88sum 4. 下列用于printf函数的控制字符常量中,代表tab

的字符常量是(B)。 A:'\b' B:'\t' C:'\r' D:'\f' 5. 下列用于printf函数的控制字符常量中,代表退格的字符常量是(A)。 A:'\b' B:'\t' C:'\r' D:'\n' 6. 如有以下程序:unsigned int a=6; int b=-20; char c; c=(a+b>6); 则c的值为(C)。(int转换为unsigned ) A:6 B:-14 C:1 D:0 7. 关于C语言,以下不正确的叙述是(B)。 A:在C语言程序设计中,逗号运算符的优先级最低 B:在C语言程序设计中,var和VAR是两个相

同的变量 C:C语言也支持重载 D:此处的两个语句int a; a=-13.06;在程序编译中将会提示出错 8. 若有定义: int a=2,*p; float x=1, y=2; char e=‘w’; 则以下用法不正确的是(B)。 A:printf("%c",e+a); B:p=&x; C:a *=y+x; D:x=y=e; 9. int x=20; printf("%d\n",~x); 以上程序片段的输出是(B)。 A:235 B:-21 C:-20 D:-11 10. 在C语言中,要求运算数必须是整型的运算符是 (D)。 A:/

2020年全国计算机等级考试二级c语言上机精选题库(共80套)

2020年全国计算机等级考试二级c语言上机精选题库(共80套) 第1套试题 第一题:给定程序中,函数fun的功能是:计算N*N矩阵的主对角元素和反向对角元素之和,并作为函数值返回。注意:要求先累加主对角线元素中的值,然后累加反向对角线元素中的值。 例如,若N=3,有下列矩阵: 1 2 3 4 5 6 7 8 9 fun函数首先累加1、5、9,然后累加3、5、7,函数的返回值为30。 请勿改动主函数main和其他函数中的任何内容,仅在fun函数的横线上填入所编写的若干表达式或语句。 #include #define N 4 fun(int t[][N], int n) { int i, sum; ___1___; for (i=0; i

第二题:下列给定程序中,函数fun 的功能是:根据整型参n ,计算如下公式的值。 ,11=A ,1112A +=A ,1123A +=A … ,1 11-A +=A n n 例如,若n=10,则应输出0.617978。 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动main 函数,不得增行或删行,也不要更改程序的结构! #include #include /********found********/ fun(int n) { double A = 1; int i; /********found********/ for(i=2;i #include void fun (int a, int b, long *c) { }

中国石油大学《C语言程序设计》期末复习题及答案

《C语言程序设计》期末复习题 一、选择题 1.能将高级语言编写的源程序转换成目标程序的是() A.链接程序 B. 解释程序 C. 编译程序 D.编辑程序 2.设a为整型变量,则不能正确表达数学关系10<a<15的C语言表达式是()。 A. 1010&&a<15 D.!(a<=10)&&!(a>=15) 3.当调用函数时,实参是一个数组名,则向函数传送的是( )。 A. 数组的长度 B. 数组的首地址 C. 数组每一个元素的地址 D. 数组每个元素中的值 4.执行下面的程序段后,k的值是() int k=1,n=325; do { k*=n%10;n/=10;}while(n); A. 3 B. 30 C. 523 D. 325 5.若有以下数组说明,则i=6;a[a[i]]元素数值是()。 int a[12]={1,4,7,10,2,5,8,11,3,6,9,12}; A.3 B.8 C.6 D.5 6.若变量已正确定义,要求程序段完成求5!的计算,不能完成此操作的程序段是() A. for(i=1,p=1;i<=5;i++) p*=i; B. for(i=1;i<=5;i++){ p=1; p*=i;} C. i=1;p=1;while(i<=5){p*=i; i++;} D. i=1;p=1;do{p*=i; i++; }while(i<=5); 7.若有:int a[][3]={{1,2,3},{4,5},{6,7},{8}}; 则数组a的第一维的大小为: ( ) A. 12 B. 3 C. 4 D.无确定值 8.设有如下程序段,则执行p=s;语句后,以下叙述正确的是( )。 char s[20]= “Bejing”,*p; p=s; A.可以用*p表示s[0] B.s数组中元素的个数和p所指字符串长度相等 C.s和p都是指针变量

相关文档
最新文档