中国石油大学华东2013-2014第一学期c语言期末考试答案
中石油(华东)《C语言》2014年秋学期在线作业(一)答案
C语言《C语言》2014年秋学期在线作业(一)一,单选题1. 已知小写字母的ASCII码为97,对于int a=99, b='b'; printf(“%c,%d”, a , b);的结果是A. 99, bB. c, 98C. 99, 98D. c, b?正确答案:B2. 以下四个选项中,属于实型常量的是A. 0x12B. -12345e-3C. 1e0.5D. e-5?正确答案:B3. 以下选项中,与k=n++完全等价的表达式是A. k=n,n=n+1B. n=n+1,k=nC. k=++nD. k+=n+1?正确答案:A4. 结构化程序设计方法中有三种基本控制结构,以下不正确的是A. 顺序结构B. 选择结构C. 循环结构D. 数组结构?正确答案:D5. 有如下程序: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. a=2 b=1B. a=1 b=1C. a=1 b=0D. a=2 b=2?正确答案:A6. 在C语言中,字符型数据在内存中的存储形式是A. 原码B. 补码C. 反码D. ASCII码?正确答案:D7. 若有定义:“int a=8,b=5,c;”,执行语句“c=a/b+0.4”后,c的值为A. 1.4B. 1C. 2.0D. 2?正确答案:B8. 已知 char ch='A'; 且表达式 ch=(ch>='A' && ch<='Z') ?(ch+32) :ch 的值是A. AB. aC. ZD. 出错?正确答案:B9. 下述语句的输出为int m=-1;printf(“%d,%u,%o”,m,m,m);A. -1,-1,-11B. -1,32767,-177777C. -1,32768,177777D. -1,65535,177777?正确答案:D10. 已有定义:int x=3,y=4,z=5;则表达式!(x+y)+z-1&&y+z/2的值是A. 6B. 0C. 2D. 1?正确答案:D11. 能正确表示逻辑关系“a≥10或a≤0”的C语言表达式是A. a>=10 or a<=0B. a>=10 || a<=0C. a>=10 && a<=0D. a>=10 | a<=0?正确答案:B12. 以下程序的输出结果是main(){int a=5,b=4,c=6,d;printf(“%d\n”,d=a>b?(a>c?a:c):(b));}A. 5B. 4C. 6D. 不确定?正确答案:C13. 执行int j,i=1; j=-i++; 后j的值是A. -1B. -2C. 1D. 2?正确答案:A14. 以下四个选项中不能看作一条语句的是A. {;}B. a=0,b=0,c=0;C. if(a>0)D. if(b==0)m=1;n=2;?正确答案:D15. 设所有变量均为整型,则表达式(a=2,b=5,a++,b++,a+b)的值是A. 7B. 8C. 9D. 10?正确答案:C16. C语言提供的合法关键字是A. swicthB. chaC. CaseD. default?正确答案:D17. 设有语句:int x=10; x += x -= x - x;,则执行语句后,x的值为A. 30B. 20C. 10D. 40?正确答案:B18. 假定x和y为double型,则表达式x=2,y=x+3/2的值是A. 3.500000B. 3C. 2.000000D. 3.000000?正确答案:D19. 以下选项中合法的用户标识是A. longB. _2TestC. 3DmaxD. A.dat?正确答案:B20. 设有变量int x=0,y=1,z=1,则运行表达式:x=y++>z--后,x,y,z的值分别是A. 1,1,1B. 1,2,0C. 0,1,1D. 0,2,0?正确答案:D============================================================================================================================================。
中国石油大学(华东)C语言习题答案
C语言复习题【设计型】5.1 输出一行星号编写程序在一行中输出 N 个星号。
输入: N值输出:一行中N个星号#include<stdio.h>int main(){int a,i;scanf("%d",&a);for(i=1;i<=a;i++)printf("*");printf("\n");return 0;}【设计型】5.2 打印平行四边形输入图形的高 n ,输出如下例( n=5 )所示的图形 .*************************输入:整数n例如 5由*组成的高为5的平行四边形#include<stdio.h>int main(){int i,j,num;scanf("%d",&num);for(i=0;i<num;i++){for(j=0;j<num;j++)printf("*");printf("\n");}return 0;}【设计型】5.3 编程计算编写程序,输入n的值,求 :1-1/2+1/3-1/4+1/5-1/6+1/7-...+1/n (保留四位小数) #include<stdio.h>int main(){double n,i,sum,k=1.0;scanf("%lf",&n);i=1,sum=0;while(i<=n)sum=sum+k/i;i++;k=-k;(用这个式子实现正负交替)}printf("sum=%.4lf\n",sum);return 0;}【设计型】5.4 分数序列有一个分数序列:...............,输入整数n,求出其前n项的和。
输出语句格式为:printf("sum=%16.10f\n",s);#include<stdio.h>int main(){int n,a,b,i,temp;double sum;scanf("%d",&n);i=1,sum=0,a=2,b=1;while(i<=n){sum=sum+a*1.0/b;temp=a;a=a+b;b=temp;(几个式子实现数值的变换)i++;}printf("sum=%16.10f\n",sum);return 0;}【设计型】5.5 求e的值编写程序,从键盘输入整数 n , 求 e 的值 . e=1+1/1!+1/2!+1/3!+..+1/n! 注意:用 double 型数据计算输出语句:printf("sum=%16.10f\n",sum);#include<stdio.h>int main(){int n,i;double sum,jc;scanf("%d",&n);i=1,sum=1.0 jc=1.0;while(i<=n){jc=jc*i;sum=sum+1.0/jc;i++;}printf("sum=%16.10f\n",sum);return 0;}【设计型】5.6 最大公约数输入两个正整数m和n,求它们的最大公约数和最小公倍数比如,输入m和n的值分别为14和21,则最大公约数为7,最小公倍数为42。
中国石油大学华东c语言期末考试题及答案
中国石油大学华东c语言期末考试题及答案一、选择题(每题2分,共20分)1. 下列关于C语言中变量的描述,错误的是()。
A. 变量必须先定义后使用B. 变量的类型必须明确C. 变量名可以是任意字符D. 变量的类型决定了变量的存储空间答案:C2. 在C语言中,下列哪个关键字用于定义函数?()A. intB. voidC. returnD. main答案:B3. 下列哪个选项是正确的C语言注释方式?()A. // 这是注释B. /* 这是注释 */C. //* 这是注释D. /* 这是注释 */答案:B4. C语言中,下列哪个运算符用于比较两个值是否相等?()A. ==B. !=C. >D. <答案:A5. 在C语言中,下列哪个选项是正确的字符串定义方式?()A. char str[] = "Hello";B. char str = "Hello";C. char str[] = {"Hello"};D. char str = {"Hello"};答案:A6. 下列哪个选项是C语言中的合法整型常量?()A. 123B. 0x1AC. 0123D. All of the above答案:D7. C语言中,下列哪个选项用于定义一个指向整型的指针?()A. int *p;B. int p;C. *int p;D. int *p = 0;答案:A8. 下列哪个选项是正确的C语言数组定义方式?()A. int arr[5] = {1, 2, 3, 4, 5};B. int arr[] = {1, 2, 3, 4, 5};C. int arr[5] = {1, 2, 3};D. All of the above答案:D9. 在C语言中,下列哪个选项是正确的文件包含指令?()A. #include "stdio.h"B. #include <stdio.h>C. #include "stdio.h"D. #include <stdio.h>答案:D10. 下列哪个选项是C语言中正确的条件语句?()A. if (x > 0)B. if x > 0C. if (x > 0) {D. if (x > 0) then答案:C二、填空题(每题2分,共20分)1. 在C语言中,定义一个整型变量并初始化为10的语句是:________。
中国石油大学《C语言程序的设计》期末复习试题与答案
《C语言程序设计》期末复习题一、选择题1.能将高级语言编写的源程序转换成目标程序的是()A.程序 B. 解释程序 C. 编译程序 D.编辑程序2.设a为整型变量,则不能正确表达数学关系10<a<15的C语言表达式是()。
A. 10<a<15B. a==11||a==12||a==13||a==14C. a>10&&a<15D.!(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. 3B. 30C. 523D. 3255.若有以下数组说明,则i=6;a[a[i]]元素数值是()。
int a[12]={1,4,7,10,2,5,8,11,3,6,9,12};A.3B.8C.6D.56.若变量已正确定义,要求程序段完成求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都是指针变量D.数组s中的容和指针变量p中的容相等9.以下正确的函数定义是( )。
中国石油大学(华东)智慧树知到“计算机科学与技术”《程序设计(C语言)》网课测试题答案1
中国石油大学(华东)智慧树知到“计算机科学与技术”《程序设计(C语言)》网课测试题答案(图片大小可自由调整)第1卷一.综合考核(共15题)1.下列描述中不正确的是()A.字符型数组中可以存放字符串B.可以对字符型数组进行整体输入、输出C.可以对整型数组进行整体输入、输出D.不能在赋值语句中通过赋值运算符“=”对字符型数组进行整体赋值2.在执行int a[ ][3]={{1,2},{3,4}}; 语句后a[1][2]的值是()A.3B.4C.0D.23.执行下面程序,输出的结果为()A.4,3,2B.3,3,2C.3,3,3D.3,2,24.若有说明语句:char c=‘\64’; 则变量C包含:()A.1个字符B.2个字符C.3个字符D.说明不合法,C值不确定5.用数组名作为函数调用时的实参,则实际传递给形参的是()A.数组的第一个元素值B.数组中全部元素值C.数组的首地址D.数组的元素个数6.以下选项中非法的表达式是()A.(a+2)++B.i=j==1C.(char)(65+10)D.x=x-17.已知:int a[ ][3]={1,2,3,4,5,6,7,8,9,0}; 则数组a的第一维的大小是()A.2B.3C.4D.无法确定;8.在“while(!a)”中,其中“!a”与表达式()等价。
A.a==0B.a==1C.a!=1D.a!=09.在C语言中,字符型数据在内存中的存储形式是()A.原码B.补码C.反码D.ASCII码10.以下选项中合法的用户标识是()A.longB._2TestC.3DmaxD.A.dat11.若有说明:char s1='\067', s2='1'; 则变量s1,s2在内存中各占的字节数是()A.1,1B.4,1C.3,1D.1,212.已知:int a[ ][3]={1,2,3,4,5,6,7,8,9,0}; 则数组a的第一维的大小是()A.2B.3C.4D.无法确定13.以下能正确定义数组并正确赋初值的语句是()A.int N=5,b[N][N];B.int a[1][2]={{1},{3}};C.int c[2][]={{1,2},{3,4}};D.int d[3][2]={{1,2},{34}};14.下面有关for循环的正确描述是()A.for循环只能用于循环次数已经确定的情况B.for循环是先执行循环体语句,后判断表达式C.在for循环中,不能用break语句跳出循环体D.for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来15.已知char b[5], *p=b; ,则正确的赋值语句是()A.b=“abcd”;B.*b=“abcd”;C.p=“abcd”;D.*p=“abcd”;第2卷一.综合考核(共15题)1.已知int a=4,b=5;,这执行表达式a=a>b后,变量a的值为()A.0B.1C.4D.52.以下程序中,while循环的循环次数是() main() { int i=0; while(iA.1 B.10C.6D.死循环,不能确定次数3.以下关于数组的描述正确的是()A.数组大小固定,但是可以有不同类型的数组元素B.数组大小可变,但是所有数组元素的类型必须相同C.数组大小固定,所有元素的类型必须相同D.数组大小可变,可以有不同类型的数组元素4.执行下面程序,输出的结果为()A.4,3,2B.3,3,2C.3,3,3D.3,2,25.在微型计算机系统中,存储一个汉字的国标码所需要的字节数是()A.1B.2C.3D.46.已定义c为字符型变量,则下列语句中正确的赋值语句是()A.c='66';B.c="66"C.c=66;D.c="B"7.已知char ch=‘A’,且表达式:ch=(ch>=‘A’ && chA.AB.aC.zD.Z8.在计算机中,C语言是属于()A.机器语言B.高级语言C.汇编语言D.自然语言9.在C语言中,下列变量名称中合法的是()A.7xB.intC.ELseD.a-b10.下面不是C语言基本数据类型的是()A.指针类型B.整型C.无符号长整型D.单精度型11.执行下面程序,输出的结果为()A.4,3,2B.3,3,2C.3,3,3D.3,2,212.若有说明:char s1=067, s2=1; 则变量s1,s2在内存中各占的字节数是()A.1,1B.4,1C.3,1D.1,2 13.若有说明语句:char c=‘\64’;则变量C包含:()A.1个字符B.2个字符C.3个字符D.说明不合法,C值不确定14.以下非法的赋值语句是()A.n=(i=2, i++);B.j++;C.++(I+1);D.x=j>0;15.执行int j, i=1; j=-i; 后j的值是()A.-1B.-2C.1D.2第1卷参考答案一.综合考核1.参考答案:C2.参考答案:C3.参考答案:A4.参考答案:A5.参考答案:C6.参考答案:A7.参考答案:C8.参考答案:D9.参考答案:D10.参考答案:B11.参考答案:A12.参考答案:C13.参考答案:D14.参考答案:D15.参考答案:C第2卷参考答案一.综合考核1.参考答案:A2.参考答案:D3.参考答案:C4.参考答案:A5.参考答案:B6.参考答案:C7.参考答案:B8.参考答案:B9.参考答案:C10.参考答案:A11.参考答案:A12.参考答案:A 13.参考答案:A14.参考答案:C15.参考答案:A。
最新中国石油大学华东C语言习题答案
中国石油大学华东C 语言习题答案C语言复习题【设计型】5.1 输出一行星号编写程序在一行中输出 N 个星号。
输入: N值输出:一行中N个星号#include<stdio.h>int main(){int a,i;scanf("%d",&a);for(i=1;i<=a;i++)printf("*");printf("\n");return 0;}【设计型】5.2 打印平行四边形输入图形的高 n ,输出如下例( n=5 )所示的图形 .*************************输入:整数n例如 5输出:由*组成的高为5的平行四边形#include<stdio.h>int main(){int i,j,num;scanf("%d",&num);for(i=0;i<num;i++){for(j=0;j<num;j++)printf("*");printf("\n");}return 0;}【设计型】5.3 编程计算编写程序,输入n的值,求 :1-1/2+1/3-1/4+1/5-1/6+1/7-...+1/n (保留四位小数)#include<stdio.h>int main(){double n,i,sum,k=1.0;scanf("%lf",&n);i=1,sum=0;while(i<=n){sum=sum+k/i;i++;k=-k;(用这个式子实现正负交替)}printf("sum=%.4lf\n",sum);return 0;}【设计型】5.4 分数序列有一个分数序列:...............,输入整数n,求出其前n项的和。
输出语句格式为:printf("sum=%16.10f\n",s);#include<stdio.h>int main(){int n,a,b,i,temp;double sum;scanf("%d",&n);i=1,sum=0,a=2,b=1;while(i<=n){sum=sum+a*1.0/b;temp=a;a=a+b;b=temp;(几个式子实现数值的变换)i++;}printf("sum=%16.10f\n",sum);return 0;}【设计型】5.5 求e的值编写程序,从键盘输入整数 n , 求 e 的值 . e=1+1/1!+1/2!+1/3!+..+1/n! 注意:用 double 型数据计算输出语句:printf("sum=%16.10f\n",sum);#include<stdio.h>int main(){int n,i;double sum,jc;scanf("%d",&n);i=1,sum=1.0 jc=1.0;while(i<=n){jc=jc*i;sum=sum+1.0/jc;i++;}printf("sum=%16.10f\n",sum);return 0;}【设计型】5.6 最大公约数输入两个正整数m和n,求它们的最大公约数和最小公倍数比如,输入m和n的值分别为14和21,则最大公约数为7,最小公倍数为42。
中国石油大学华东2013C语言答案之函数
第九章函数9.1#include <stdio.h>int fun(int x,int y);int main(){int a,b,c;scanf("%d%d",&a,&b);c=fun(a,b);printf("c=%d\n",c);return 0;}int fun(int x,int y){int m,n,k,l,ch;m=x%10;n=x/10;k=y%10;l=y/10;ch=1000*m+100*k+10*n+l;return ch;}9.2#include <stdio.h>int fun(int x);int main(){int a;scanf("%d",&a);if(fun(a)) printf("Prime\n");else printf("Non Prime\n");return 0;}int fun(int x){int a;for(a=2;a<x;a++){if(x%a==0)return 0;}if(a>=x)return 1;}9.3#include <stdio.h>int fun(double y,int m);int main(){double x;int n;scanf("%lf%d",&x,&n);printf("%lf\n",fun(x,n));return 0;}double fun(double y,int m) {int i,j=1;double k=1;float s=1;for(i=1;i<=m;i++){ k=k*y;j=j*i;s=s+k/j;}return s;}9.4#include <stdio.h>void fun(int m,int n,int zz[]); int main(){int m,n,zz[1000];scanf("%d%d",&m,&n);fun(m,n,zz);for(m=0;m<n;m++)printf("%6d",zz[m]);printf("\n");return 0;}void fun(int m,int n,int zz[]) {int i,j=0,k;for(i=m+1;j<n;i++){ for(k=2;k<=i/2;k++){ if(i%k==0)break;}if(k>i/2){ zz[j]=i;j++;}}}9.5#include <stdio.h>void fun(char str[],char ch); int main(){char str[80];char ch;gets(str);scanf("%c",&ch);fun(str,ch);printf("%s\n",str);return 0;}void fun(char str[],char ch) {int i,j=0;for(i=0;str[i]!='\0';i++){ if(str[i]==ch){for(j=i;str[j]!='\0';j++)str[j]=str[j+1];i--;}}}9.6#include <stdio.h>int fun(int x,int y);int main(){int m,n,s;scanf("%d%d",&n,&m);s=fun(n,m);printf("%d\n",s);return 0;}int fun(int x,int y){int m;if(x<=y)m=y+fun(x,y-1);elsem=0;return m;}9.7#include <stdio.h>int GCD(int x,int y);int main(){int n,m;scanf("%d%d",&n,&m);printf("%d\n",GCD(n,m));return 0;}int GCD(int x,int y){int m,a;if(y<=x&&x%y==0)m=y;if(y<=x&&x%y!=0){ a=x%y;m=GCD(y,a);}if(y>x&&y%x==0)m=x;if(y>x&&y%x!=0){ a=y%x;m=GCD(a,x);}return m;}9.8#include <stdio.h>int fun(int x);int main(){int n;scanf("%d",&n);printf("%d\n",fun(n));return 0;}int fun(int x){int m;if(x==1||x==2)m=1;if(x>2){ if(x%2==1)m=fun(x-1)+fun(x-2);if(x%2==0)m=fun(x-1)-fun(x-2);}return m;}9.9#include <stdio.h>void fun(int x);int main(){int a,m[100],i;scanf("%d",&a);m[0]=a;for(i=1;m[i-1]!=0;i++)scanf(" %d",&m[i]);for(i=0;m[i]!=0;i++){ if(m[i]%2==1)printf("%d is odd number!\n",m[i]);if(m[i]%2==0)fun(m[i]);}}void fun(int x){int i,n,j,k;for(i=2;;i++){ n=x-i;for(k=2;k<=i/2;k++){{if(i%k==0)break;}if(k>i/2)break;}for(j=2;j<=n/2;j++){ if(n%j==0)break;}if(j>n/2)break;}printf("%d=%d+%d\n",x,i,n); }9.10#include <stdio.h>#include <math.h>double fun(double x);int main( ){ double a;scanf ( "%lf", &a );printf ( "%lf\n", fun ( a ) );return 0;}double fun(double x){int m;double n;m=(int)(x*100+0.5);n=m/100.0;return n;}9.11#include <stdio.h>int fun(int x);int main(){int n;scanf("%d",&n);printf("The result is: %d\n",fun(n));return 0;}int fun(int x){int m[100],i,y=0,j;for(i=0;x!=0;i++){ m[i]=x%10;x=x/10;}for(j=i-1;j>=0;j--){ if(m[j]%2==0)y=y*10+m[j];}return y;}9.12#include <stdio.h>double fun(int x);int main(){int n;double s;scanf("%d",&n);s=fun(n);printf("s=%f\n",s);return 0;}double fun(int x){int i,m=1;double y=1;for(i=1;i<=x;i++){m=m*i;y=y+1.0/m;}return y;}9.13#include <stdio.h>int Deposit(int x);int Withdraw(int x,int y);int main(){int n,i,day;int amount,dpt,wd;scanf("%d",&n);for(i=1;i<=n;i++){scanf("%d",&amount);for(day=1;;day++){dpt=Deposit(day);wd=Withdraw(day,amount);if(dpt-wd>0){printf("%d天骗取现金%d元\n",day,dpt-wd);break;}}}return 0;}int Deposit(int x){int m=1,i,n;if(x==1)m=1;if(x>1){ n=1;for(i=2;i<=x;i++){ n=2*n;m=m+n;}}return m;}int Withdraw(int x,int y){int m;m=x*y;return m;}9.14#include <stdio.h>void fun(char m[]);int main(){char s[80];gets(s);fun(s);puts(s);return 0;}void fun(char s[]){char M[80],N[80];int i,j=0,k=0;for(i=0;s[i]!='\0';i++){ if(s[i]>='0'&&s[i]<='9'){{ M[j]=s[i];j++;}M[j]='\0';}else{{ N[k]=s[i];k++;}N[k]='\0';}}for(i=0;N[i]!='\0';i++)s[i]=N[i];for(j=i,k=0;M[k]!='\0';j++,k++)s[j]=M[k];s[j]='\0';}9.15#include <stdio.h>#define M 3#define N 4void fun(int x[M][N]);int main(){int x[M][N],i,j;for(i=0; i<M; i++)for(j=0; j<N; j++)scanf("%d",&x[i][j]);fun(x);return 0;}void fun(int x[M][N]){int i,j,k,tag1,tag2,tag3=0;for(i=0;i<M;i++){ tag1=0;tag2=0;for(j=0;j<N;j++)if(x[i][tag1]<x[i][j])tag1=j;for(k=0;k<M;k++){ if(k!=i)if(x[i][tag1]<x[k][tag1])tag2++;}if(tag2==2){ printf("find:x[%d][%d]=%d\n",i,tag1,x[i][tag1]);tag3=1;}}if(tag3==0)printf("not find!\n");}。
中国石油大学(华东)大一C语言答案
大一6.1 谁能出线背景:电视台举办“超级学生”才艺大赛,由于报名人数狂多,所以要先进行分组预赛。
按规定,每10名学生为一个预赛小组,评委打出分数(0~100分),各小组第一名可以进入下一轮;如果有多名学生得分相同都是第一名,则可同时进入下一轮。
输入:按顺序给出一个小组10个人的最后得分(int)。
输出:能够出线的学生序号(0~9)。
#include<stdio.h>void main(){int a[10];int b=0,i,n,max=0;for(i=0;i<10;i++){scanf("%d",&a[i]);}for(i=0;i<10;i++){if(a[i]>max){max=a[i];}}for(i=0;i<10;i++){if(a[i]==max){printf("%d\n",i);}}}6.2 统计素数的个数求出 2 到m 之间( 含m,m<=1000) 所有素数并放在数组 a 中。
输入:正整数m输出:从小到大的所有素数,及个数(素数输出的时候用%4d来控制)如:输入:10输出:2 3 5 74#include<stdio.h>int main(){int x,n,t[100],j,i=0;scanf("%d",&n);for(x=2;x<=n;x++){for(j=2;j<=x;j++){if(x%j==0)break;}if(x==j){ t[i]=x;printf("%4d",t[i]);i++;}}printf("\n%d\n",i);return 0;}6.3 冒泡法排序冒泡排序(BubbleSort)的基本概念是:依次比较相邻的两个数,将小数放在前面,大数放在后面。
即在第一趟:首先比较第1个和第2个数,将小数放前,大数放后。
中国石油大学(华东)C语言在线测评答案第5、6章(2013级亲测正确)
5.1 计算并输出两个整数的最大值#include <stdio.h>int main(){int data1,data2;char op;scanf("%d%c%d",&data1,&op,&data2);switch(op){case'+':printf("%d+%d=%d\n",data1,data2,data1+data2); break;case'-':printf("%d-%d=%d\n",data1,data2,data1-data2); break;case'*':printf("%d*%d=%d\n",data1,data2,data1*data2); break;case'/':if(0==data2)printf("Division by zero!\n");elseprintf("%d/%d=%d\n",data1,data2,data1/data2);}return 0;}5.3 百分制转化为五分制问题描述:从键盘输入一个百分制成绩(0~100)n,编程计算并输出其对应的五分制成绩('A'~'E')。
输入:整数n 输出: n及其对应的五分制成绩#include <stdio.h>int main(){int a,t;scanf("%d",&a);if(a<0||a>100)printf("Input error!\n");else{if(a>=90)t=1;else if(a>=80&&a<90)t=2;else if(a>=70&&a<80)t=3;else if(a>=60&&a<70)t=4;elset=5;switch(t){case 1:printf("%d--A\n",a); break;case 2:printf("%d--B\n",a); break;case 3:printf("%d--C\n",a); break;case 4:printf("%d--D\n",a); break;case 5:printf("%d--E\n",a); break;}}return 0;}5.4 绝对值问题描述:输入一个实数,不使用绝对值函数计算并输出该实数的绝对值。
中国石油大学C语言考试题及答案
中国石油大学C语言考试题及答案一、选择题(每题2分,共20分)1. 下列关于C语言的叙述中,正确的是()。
A. C语言是高级语言B. C语言是面向对象的编程语言C. C语言是汇编语言D. C语言是机器语言答案:A2. 在C语言中,int类型的变量占用的内存空间通常是()。
A. 1个字节B. 2个字节C. 4个字节D. 8个字节答案:C3. 下列哪个选项不是C语言中的关键字()。
A. ifB. elseC. switchD. then答案:D4. C语言中,用于定义数组的关键字是()。
A. intB. floatC. arrayD. struct答案:A5. 在C语言中,用于定义函数的关键字是()。
A. functionB. defC. defineD. void答案:D6. 下列哪个选项是C语言中的合法标识符()。
A. 2variableB. variable2C. variable$2D. variable_2答案:D7. C语言中,用于表示逻辑“与”操作的运算符是()。
A. ||B. &&C. andD. or答案:B8. 在C语言中,用于定义指针的关键字是()。
A. pointerB. ptrC. refD. *答案:D9. 下列哪个选项是C语言中的合法字符串字面量()。
A. "Hello"B. 'Hello'C. "HelloD. Hello答案:A10. C语言中,用于表示逻辑“非”操作的运算符是()。
A. notB. !C. ~D. ^答案:B二、填空题(每题2分,共20分)1. 在C语言中,表示字符常量的数据类型是____。
答案:char2. C语言中,用于计算两个数的和的运算符是____。
答案:+3. 在C语言中,用于定义结构体的关键字是____。
答案:struct4. C语言中,用于定义枚举类型的关键字是____。
答案:enum5. C语言中,用于定义联合类型的关键字是____。
C语言程序设计期末考试试题含答案
C语言程序设计期末考试试题含答案一、选择题(每题 2 分,共 40 分)1、以下选项中,不是 C 语言关键字的是()A intB floatC charD string答案:D解释:string 不是 C 语言的关键字,C 语言中表示字符串通常使用字符数组。
2、以下能正确表示八进制整数的是()A 0o123B 0123C 0x123D 123答案:B解释:在 C 语言中,八进制整数以数字 0 开头,所以 0123 是八进制整数。
3、以下变量定义中,合法的是()A int a=b=1;B char a='\0';C float 2a;D double a&;答案:B解释:A 选项中不能连续赋值;C 选项变量名不能以数字开头;D 选项变量名不能包含特殊字符&。
4、若有定义:int a=5, b=2; 则表达式 a/b 的值是()A 25B 2C 20D 3答案:B解释:C 语言中,两个整数相除结果为整数,舍去小数部分。
5、若有定义:int a5 ={1, 2, 3, 4, 5};则 a2的值是()A 2B 3C 4D 5答案:B解释:数组下标从 0 开始,所以 a2对应的值是 3 。
6、以下关于函数的叙述中,正确的是()A 函数可以嵌套定义B 函数可以嵌套调用C 函数可以没有返回值D 以上都不对答案:C解释:函数不能嵌套定义,但可以嵌套调用。
函数可以没有返回值,此时函数类型为 void 。
7、若有以下函数定义:```cint fun(int a, int b){return a + b;}```则调用 fun(1, 2)的返回值是()A 1B 2C 3D 4答案:C解释:函数 fun 实现了两个整数的相加,所以 fun(1, 2)的返回值是3 。
8、以下关于指针的叙述中,错误的是()A 指针可以指向变量B 指针可以指向数组C 指针可以指向函数D 指针不可以进行加减运算答案:D解释:指针可以进行加减运算,但运算的结果要根据指针所指向的数据类型来确定。
中国石油大学C语言上机题答案(2013版)答案_最全最详细
中国石油大学c语言上机题答案大全(2013版)最全最详细1.1 Hello world.让我们用C语言向世界问好。
最早的程序基本是这个样子的:程序一:#include <stdio.h>void main(){printf("Hello world.\n");}程序二:#include <stdio.h>int main(){printf("Hello world.\n");return 0;}上面的程序你任意模仿一个,看看是否可以通过?如果你能通过这个简单的程序,那就让我们继续完成后面的习题吧。
输入:无输出:Hello world.#include<stdio.h>int main(){printf("Hello world.\n");}1.2 Welcome to Beijing.让我们来练习如何显示多行文字。
输入:无输出:就是下面的那段文字。
#include<stdio.h>void main(){printf("Welcome\n");printf("to\n");printf("Beijing.\n");}1.3 练习最简单的printf和scanfprintf函数和scanf函数是C语言中最常用的函数之一,下面让我们练习一下吧。
输入:整型变量x的值。
输出:输出整型变量x对应的十进制、八进制和十六进制形式。
认真观察-1的八进制和十六进制输出,请想想是为什么。
#include <stdio.h>int main(){int x;scanf("%d",&x);printf("x=%d,",x);printf("x=%o,",x);printf("x=%x\n",x);return 0;}1.4 练习两个整数之间的运算背景:基本练习。
2022年中国石油大学(华东)公共课《C语言》科目期末试卷B(有答案)
2022年中国石油大学(华东)公共课《C语言》科目期末试卷B(有答案)一、填空题1、为建立如图10-5所示的存储结构(即每个结点两个域,data是数据域,next是指向结点的指针域),请将定义补充完整。
struct s{char data;_______}node;2、C语言源程序的基本单位是________3、在C语言源程序中,一个变量代表【】。
4、若a是int型变量,则表达式(a=4*5,a*2),a+6的值为_______。
5、把以下多项式写成只含7次乘法运算,其余皆为加、减运算的C语言表达式为_______。
5x7+3x6-4x5+2x1+x3-6x2+x+106、设x为无符号整数。
表达式x^(~(~0<<n)<<(p+1-n)))的作用是将x 中从第p位开始的n位求反(1变0,0变1),其他位不变。
请按表达式的求值顺序写出分解步骤,并解释含义。
__________________________________7、下面add函数的功能是求两个参数的和,并将和值返回调用函数。
函数中错误的部分是_______,改正后为_______。
void add(float a,float b){float c;c=a+b;return c;}8、在C语言中,二维数组元素在内存中的存放顺序是_______。
9、若有定义:inta[3][4]={{1,2},{0},{4,6,8,10}};,则初始化后,a[1][2]得到的初值是_______,a[2][1]得到的初值是_______。
10、当运行以下程序时,从键盘输入book<回车>book囗<回车>(囗表示空格),则下面程序段的运行结果是_______。
char al[80],a2[80],*sl=al,*s2=a2;gets(s1);gets(s2);if(!strcmp(sl,s2))printf("x");else printf("#");printf("%d",strlen(strcat(sl,s2))}二、选择题11、设以下变量均为int类型,则值不等于7的表达式是( )。
C语言期末考试试卷附参考答案
一、单项选择题(请将答案填在下面表格中20×1)1. 以下叙述中正确的是()。
A. C语言比其他语言高级B. C语言可以不用编译就能被计算机识别执行C. C语言以接近英语国家的自然语言和数学语言作为语言的表达形式D. C语言出现的最晚,具有其他语言的一切优点2. 以下叙述中正确的是()。
A.构成C程序的基本单位是函数B.可在一个函数中定义另一个函数C. main函数必须放在其他函数之前D.所有被调用的函数一定要在调用之前进行定义3. 以下叙述中正确的是()。
A. C语言程序总是从第一个函数开始执行B.在C语言程序中,要调用函数必须在main()函数中定义C. C语言程序总是从main()函数开始执行D. C语言程序中的main()函数必须放在程序的开始部分4. 以下有关for循环的正确描述是()。
A. for循环只能用于循环次数已经确定的情况B. for循环是先执行循环体语句,后判断表达式C.在for循环中,不能用break语句跳出循环体D. for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来5. 对下面程序段的描述,正确的是()。
x=-1;do{x=x*x;}while(!x);A.是死循环B. 循环执行一次C. 循环执行两次D. 有语法错误6. 以下有关C语言数组说法正确的是()。
A.数组元素的数据类型可以不一致B.数组元素的个数可以不确定,允许随机变动C.可以使用动态内存分配技术,定义元素个数可变的数组D.定义一个数组后,就确定了它所容纳的具有相同数据类型元素的个数7.以下数组定义正确的是()。
A. int a(20);B. int a[ ]={1,2,5,7,0};C. int a[n];D. int a[2]={1,2,4,6};8.在定义int b[2][10];之后,对b数组元素引用正确的是( )。
A. b[0][9]B. b[2,3]C. b(1)(5)D. b[10] [0]9. 如有定义语句int c[ ]={1,5,3,4,6,7,0};,则数组c有()个元素。
中石油(华东)《C语言》在线考试(适用于2014年6月份考试)
2014年春季学期《C语言》在线考试(适用于2014年6月份考试)单选题其他题简答题一、单选题(共 10 道试题,共 20 分。
)1. C语言中,函数返回值的类型是由A. return语句中的表达式类型决定B. 调用函数的主调函数类型决定C. 调用函数时的临时类型决定D. 定义函数时所指定的函数类型决定-----------------选择:B2. 设有定义语句:char str[][20]={,"Beijing","中国石油大学"},*p=str; 则printf("%d\n",strlen(p+20)); 输出结果是A. 10B. 6C. 0D. 20-----------------选择:A3. 对于int a=99, b='b'; printf(“%c,%d”, a , b);的结果是A. 99, bB. c, 98C. 99, 98D. c, b-----------------选择:B4. 在C语言中,字符型数据在内存中的存储形式是A. 原码B. 补码C. 反码D. ASCII码-----------------选择:D5.已定义以下函数: fun(int *p){ return *p; }该函数的返回值是A. 不确定的值B. 形参p所指存储单元中的值C. 形参p中存放的值D. 形参p的地址值-----------------选择:D6. 设有语句:int x=10; x += x -= x - x;,则执行语句后,x的值为A. 30B. 20C. 10-----------------选择:B7. 以下选项中不能正确赋值的是A. char b[]={′H′,′e′,′l′,′l′,′o′,′!′}B. char b[10];b="Hello!"C. char b[10]= "Hello!"D. char *str="Hello!";-----------------选择:B8. 在C语言中,下列字符常量中合法的是A. ′\084′B. ′\x43′C. ′ab′D. ”\0”-----------------选择:B9. 判断字符串的长度,应该使用的函数是A. strcatB. strcmpC. strcpyD. strlen-----------------选择:D10. 计算表达式(x=4*5,x*5),x+25的值是A. 20B. 125C. 100D. 45-----------------选择:D2014年春季学期《C语言》在线考试(适用于2014年6月份考试) 单选题其他题简答题二、其他题(共 10 道试题,共 50 分。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《计算机程序设计C(2-1)》期末考试试卷专业班级姓名学号开课系室计算机应用技术系考试日期 2014年 1月10日一、程序阅读题(每空2分,共20分)1.若想通过以下输入语句给a赋值1,给b赋值2,则输入数据的形式应该是【1】。
scanf("%d,%d",&a,&b);2.如果a和b的值分别为20和10,下列语句printf("%d+%d=%d",a,b,a+b);输出到屏幕上的结果是【2】。
3.下面程序的输出结果为【3】。
#include <stdio.h>int main(){int x = 10,y = 3;printf("%d\n",x/y);return 0;}4.设i,j,k均为int型变量,则执行完下面的for循环后,k的值为【4】。
for(i = 0,j = 10; i <= j; i ++,j --)k =i + j;5. 水仙花数是指一个三位数的各位数字的立方和是这个数本身,请阅读下面程序并完成填空。
#include <stdio.h>int fun(int n){int i,j,k,m;m = n;【5】;while(m){【6】;m = m / 10;k = k + j * j * j;}if(k == n)【7】;elsereturn 0;}int main(){int i;for(i = 100; i < 1000; i ++){1if( 【8】== 1){printf("%d is ok!\n" ,i);}}return 0;}6. 程序功能是:从键盘输入一行字符,将其中的所有数字字符转换为按先后顺序排列的一个整数。
例如,输入的一行字符为“a2b0D04”,输入结果为整数2004,请补充完整程序。
#include <stdio.h>int main(){int n = 0;char ch;ch = getchar();while(ch != '\n'){if( 【9】){n = n * 10 + ch - '0';}ch = getchar();}printf("value = %d\n",n);return 0;}7.有以下程序#include <stdio.h>int sub(int n){return (n / 10 + n % 10);}int main(){int x,y;scanf("%d",&x);y = sub(sub(sub(x)));printf("%d\n",y);return 0;}若运行时输入:1234<回车>,程序的输出结果是【10】。
二、程序改错题(每处错误2分,共20分,请修改并且只能修改/************found************/的下一行)1.下面这段代码是让计算机计算a和b的积。
#include <stdio.h>/**********found【1】**********/int mian( ){/**********found【2】**********/int a,b,c;scanf("%f%f",&a,&b);c = a * b;/**********found【3】**********/printf("%F\n",c);return 0;}2.下面这段代码求m和n的最大公约数。
#include <stdio.h>int main(){int m,n,r;/**********found【4】**********/scanf("%d%d",m,n);do {/**********found【5】**********/r = m / n;m = n;n = r;/**********found【6】**********/}while(r == 0);/**********found【7】**********/printf("最大公约数是:%d\n",r);return 0;}3.下面这段代码是用来求1+1/1+1/2+1/3+…+1/n。
#include <stdio.h>/**********found【8】**********/int Fun(int n){int i;/**********found【9】**********/double sum = 0.0;for(i = 1;i <= n;i ++){/**********found【10】**********/sum = sum + 1 / i;}return sum;}int main(){int n;scanf("%d",&n);printf("1+1/1+1/2+1/3+...+1/n = %f\n",Fun(n));return 0;}三、程序设计题(每题10分,共60分)1.小明A+B小明今年3岁了,现在他已经能够认识100以内的非负整数,并且能够进行100以内的非负整数的加法计算。
对于大于等于100的整数,小明仅保留该数的最后两位进行计算。
如果计算结果大于等于100,那么小明也仅保留计算结果的最后两位。
例如,对于小明来说:1)1234和34是相等的。
2)35+80=15。
现给定非负整数A和B,你的任务是代表小明计算出A+B的值。
输入一行,包含两个非负整数A和B(A和B均在int类型可表示的范围内)。
输出输出小明A+B的结果。
样例输入35 80样例输出152.星期几输入今天是星期几的序号(星期天的序号为0),输出明天是星期几的英文单词。
周日到周六的英文表示:Sun,Mon,Tue,Wed,Thu,Fri,Sat输入一个整数(0-6)输出所表示的英文样例输入样例输出Mon3.ASCIISince all we know the ASCII code, your job is simple: input numbers and output corresponding messages.InputThe first line contains one integer T (1<=T<=1000).The input will contain T positive integers separated by whitespaces .The integers will be no less than 32.OutputOutput the corresponding message in just one line.Warning: no extra characters are allowed.Sample Input1987 101 108 99 111 109 101 32 116 111 32 65 67 77 32 67 108 117 98Sample OutputWelcome to ACM ClubHint4.数校庆纪念品六十载弦歌不辍,一甲子薪火相传。
2013年10月,中国石油大学迎来了60周年华诞。
校庆期间对每位荣归母校的校友都将提供一份完全立方体包装的纪念品,志愿者将其堆放在墙角,具体堆放形状如下图所示:因为纪念品堆得实在是太有规律了,你只要知道它的层数就可以计算所有纪念品的数量了。
输入输入数据只有一个整数n,表示这堆纪念品的层数(1<=n<=100)。
输出一个整数,表示这堆纪念品的总数量。
样例输入5样例输出355.电梯正在建设的工科楼E座将会成为校内最高建筑,假设该建筑内只有一个电梯。
现在有一个由N个正整数组成的请求列表,每个数字表明了电梯将依次停留的楼层顺序。
电梯每上行1层将花费6秒,下行1层将花费4秒。
电梯在每一层停留一次,将花费5秒。
对于一个给定的请求列表,请计算出按照顺序途径每一层楼所花费的总时间。
电梯一开始停留在第0层,并且在完成请求队列之后不需要返回地面(第0层)。
输入输入共2行。
第一行为一个正整数N,表示请求队列中需要经过的楼层数目;第二行为N个正整数,表示电梯依次经过的楼层数,每个数都少于30。
输出花费的总时间样例输入32 3 1样例输出416.吃巧克力2013年12月8日,ACM俱乐部的小武代表学校参加了在吉林大学举办的第38届ACM国际大学生程序设计竞赛现场赛,返校时带了一盒好吃又精美的巧克力给滨滨(盒内共有N 块巧克力,20 > N >0)。
小武告诉滨滨每天可以吃一块或者两块巧克力。
假设滨滨每天都吃巧克力,问滨滨共有多少种不同的吃完巧克力的方案。
例如:如果N=1,则滨滨第1天就吃掉它,共有1种方案;如果N=2,则滨滨可以第1天吃1块,第2天吃1块;也可以第1天吃2块,共有2种方案;如果N=3,则滨滨第1天可以吃1块,剩2块;也可以第1天吃2块剩1块,共有2+1=3种方案;如果N=4,则滨滨可以第1天吃1块,剩3块;也可以第1天吃2块,剩2块,共有3+2=5种方案。
输入一个正整数N。
输出滨滨吃巧克力的方案数目。
样例输入4样例输出5#include <stdio.h>/*在下面完成Func函数,答题纸上只需要写Func函数即可*/int main( ){int n;scanf("%d",&n);printf("总共有%d种方案\n",Func(n));return 0;}答题页一、程序阅读题(每空2分,共20分)1. 2.3. 4.5. 6.7. 8.1. 2.3. 4.5. 6.7. 8.9. 10.三、程序设计题(每处10分,共60分)Array1. #include <stdio.h>#include <stdlib.h>int main(){int a[2],i,j=0;for(i=0;i<2;i++){scanf("%d",&a[i]);}for(i=0;i<2;i++){j=j+a[i];}if(j<100){printf("%d\n",j);}else{printf("%d\n",j%100);}return 0;} 2.2. #include <stdio.h>#include <stdlib.h>int main(){int a;scanf("%d",&a);if(a==0)printf("Mon\n");if(a==1)printf("Tue\n");if(a==2)printf("Wed\n");if(a==3)printf("Thu\n");if(a==4)printf("Fri\n");if(a==5)printf("Sat\n");if(a==6)printf("Sun\n");return 0;}3. #include <stdio.h>#include <stdlib.h>int main(){int a[100]={0};int i,n;scanf("%d",&n);for(i=0;i<n;i++){scanf("%d",&a[i]);}for(i=0;i<n;i++){printf("%c",a[i]);}printf("\n");return 0;} 4. #include <stdio.h>#include <stdlib.h>int main(){int i,n,j,a=0;scanf("%d",&n);for(i=1;i<=n;i++){for(j=1;j<=i;j++){a=a+j;}}printf("%d\n",a);return 0;}5. #include <stdio.h>#include <stdlib.h>int main(){int n,i,sum;scanf("%d",&n);int a[n];for(i=0;i<n;i++){scanf("%d",&a[i]);}sum=a[0]*6;for(i=0;i<n-1;i++){if(a[i]<a[i+1]){sum=sum+(a[i+1]-a[i])*6;}if(a[i]>a[i+1]){sum=sum+(a[i]-a[i+1])*4;}}sum = sum + n * 5;printf("%d\n",sum);return 0;} 6. int Func(int n){if(n==1) return 1;if(n==2) return 2;else return Func(n-1)+Func(n-2);}。