中国石油大学(华东)C语言在线测评答案 第8章数组(2013级亲测正确)
石油大学C语言在线考试附答案

C语言综合复习资料一、单选题1. C语言中基本数据类型有A整型、实型、逻辑型B整型、字符型、逻辑型C整型、实型、字符型D整型、实型、字符型、逻辑型2. 在C语言中;数字029是一个A八进制数B十进制数C十六进制数D非法数3. 在以下关于C语言的不严格的叙述中;错误的说法是A在标识符中;大写字母和小些字母的意义相同B有些不同类型的变量可以在一个表达式中运算C在赋值表达式中等号“=”左边的变量和右边的值可以是不同类型D同一个运算符号在不同的场合可以有不同的含义4. 已知int a=4;b=5; ;这执行表达式a=a>b 后;变量a的值为A 0 B1 C 4 D 55. 设有定义int a=3;b=4;c=5; ;则以下表达式中;值为0的表达式是A a&&bB a<=bC a||b+c&&b-cD a<b&&c||16. 以下不合法的赋值语句是Ax=1;y=2; B++x; Cx=y=15; Dy=intx;7. 已定义c为字符型变量;则下列语句中正确的是Ac='97'; Bc="97"; Cc="a"; Dc=97;8. 能将高级语言编写的源程序转换为目标程序的软件是A汇编程序B编辑程序C解释程序D编译程序9. 设有定义char *p=“abcde\0fghjik\0”; 则printf“%d\n”;strlenp;输出结果是A 12B 15C 6D 510.以下选项中合法的实型常数是A 5E2.0B E-3C .2E0D 1.3E11.以下非法的赋值语句是A n=i=2;++i;B j++;C ++i+1;D x=j>0;12.已定义c为字符型变量;则下列正确的赋值语句是Ac='66'; Bc="66"; Cc="B"; Dc=66;13.设a=3;b=4;c=-5;则逻辑表达式:a || b+c&& b==c 的值是A1 B0 C非0 D语法错14.以下能正确定义数组并正确赋初值的语句是Aint N=5;bNN; Bint a12={{1};{3}};Cint c2= {{1;2};{3;4}}; Dint d32={{1;2};{34}};15.结构化程序设计的三种基本结构是A顺序结构、选择结构、循环结构Bif、switch、breakCfor、while、do-while Dif、for、continue16.在一个C程序中Amain函数必须出现在所有函数之前Bmain函数可以在任何地方出现Cmain函数必须出现在所有函数之后Dmain函数必须出现在固定位置17.以下合法的字符常量是A‘\084’B‘ab’C‘\x43’D“\0”18.用8位无符号二进制数能表示的最大十进制数为A127 B128 C255 D25619.设有定义:int x=0;y=1;z=1;则运行表达式:x=y++>z--后;x;y;z的值分别是A1;1;1 B1;2;0 C0;1;1 D0;2;020.设有int x=11;则表达式x++*1/3的值是A 3 B4 C 11 D 1221.若有: int x=1;n=5; 则执行语句x%=n%2后;x的值为A 3 B2 C 1 D 022.结构化程序的3种基本控制结构是A if-else结构、while结构、for结构B 顺序结构、分支机构、循环结构C while结构、do-while结构、for结构D 以上三种都不对23.下面程序段的输出结果是int k=11;printf“%d;%o;%x”;k;k;k;A11;12;11 B11;13;13 C11;013;0xb D11;13;b24.在微型计算机系统中;存储一个汉字的国标码所需要的字节数是A 1B 2C 3D 425.以下非法的赋值语句是A n=i=2;++i;B j++;C ++i+1;D x=j>0;26.语句:printf"%d";a=2&&b=-2; 的输出结果是A无输出B结果不确定 C 1 D 227.设有定义语句:charstr20={"Hello";"Beijing"};*p=str;则printf"%d\n";strlenp+20; 输出结果是A0 B5 C7 D2028.以下选项中;与k=++n完全等价的表达式是A k=n;n=n+1B n=n+1;k=nC k=++nD k+=n+1二、读程序;写出程序执行结果1. #include <stdio.h>void main{ int a=10;b=0;ifa==12{a++; b++; }else{ a=a+3 ; b=b+3;}printf“%d;%d\n”;a;b;}2. #include <stdio.h>void main{ ints;i;fors=0;i=1;i<5;i++;s+=i ;printf“%d\n”;s;}3. #include “stdio.h”void main{ char n=‘c’;switchn++{ default: printf“error”; break;case ‘a’: case ‘A’:case ‘b’: case ‘B’: printf“good”;break; case ‘c’: case ‘C’: printf“pass”;case ‘d’: case ‘D’: printf“warm”;}}4. #include <stdio.h>void main{ int k=4;n=0;for ; n<k ;{ n++;ifn%3=0 continue;k- -;}printf"%d;%d\n";k;n;}5. #include <stdio.h>int fint b;intm;int n{ inti;s=0;fori=m;i<=n;i+=2 s+=bi;return s;}void main{ intx;a={1;2;3;4;5;6;7;8;9;10};x=fa;3;8;printf“%d\n”;x;}6. #include <stdio.h>voidcopy_strchar from ;char to{ int k=0;whilefromk=‘\0’{ tok=fromk;k++;}tok=‘\0’;/*末尾加上串结束标志*/ }void main{ char str180=”red”;str280=”green”;copy_str str1;str2;putsstr2;}7. #include <stdio.h>int d=1;void funint p{ int d=5;d+=p++;printf“%d”;d;}void main{ int a=3;funa; d+=a++;printf"%d\n"; d;}8.#include <stdio.h>void main{ int i;j;fori=0;i<3;i++{forj=0;j<=i;j++printf"*";printf"\n";}}9. #include <stdio.h>void main{ inti;for i=0; i<3; i++switch i{ case 1: printf"%d "; i;case 2: printf"%d "; i;default :printf"%d "; i;}}10.#include <stdio.h>intwsint x{ ifx/100>0return3;else ifx/10>0return2;elsereturn1;}void main{ int a=123;printf"%d是%d位数\n";a;wsa;}11. #include <stdio.h>#include <string.h>void main{ char a10="abc";char b="defg";putsa;putsb;putsstrcata;b;}12.#include <stdio.h>void main{ int i;n={1;2;3;4;5};fori=0;i<2;i++{ ni=n4-i+1;printf"%d ";ni;}fori=0;i<5;i++printf"%d ";ni;}13.#include <stdio.h>void main{ int a34={{1;2;3;4};{9;7;10;6};{-1;8;-5;5}};int i;j;row=0;colum=0;max;max=a00;fori=0;i<=2;i++forj=0;j<=3;j++ifaij>max{ max=aij;row=i;colum=j;}printf"max=%d;row=%d;colum=%d";max;row;colum;}14.#include <stdio.h>voidcopy_strchar from ;char to{ int k=0;whilefromk= ‘\0’{ tok=fromk;k++;}tok=‘\0’;/*末尾加上串结束标志*/}void main{ char str180= "good";str280= "abcdef";copy_strstr1;str2;putsstr2;}15. #include <stdio.h>void main{ int a=0;a+=a=8;printf“%d\n”;a;}16. #include <stdio.h>void main{ int x=4;ifx++>=5printf“%d\n”; x ;elseprintf“%d\n”; x-- ;}17. #include <stdio.h>#define MAXa;b a>b a : b+1void main{ int i=6;j=8;printf“%d\n”;MAXi;j;}18.#include <stdio.h>void main{ int i;j;m=0;n=0;k=0;fori=6; i<=9;i++forj=2; j<=3;j++switchi%j{ case 0: m++; break;case 1: n++; break;case 2: k++; break;default: k++;n++;m++;}printf"%d %d %d\n";m;n;k;}19. #include <stdio.h>void main{ inti;fori=1;i<5;i++{ ifi%2putchar‘<’;elsecontinue;putchar‘>’;}putchar‘#’;}20.#include <stdio.h>void main{ int i;n={1;2;3;4;5};fori=0;i<2;i++{ ni=n4-i+1;printf"%d ";ni;}fori=0;i<5;i++{ printf"%d ";ni;}}21. #include <stdio.h>int m=13;int funint x;int y{ int m=3;returnx*y-m;}void main{ int a=7; b=5;printf"%d\n"; funa;b/m;}22. #include <stdio.h>void main{ int n=2;printf“%d;%d;%d\n”; ++n ; n+=2 ; --n ;}23. #include <stdio.h>void main{ int x=1;a=0;b=0;switchx{ case 0: b++;case 1: a++;case 2: a++;b++;}printf“a=%d;b=%d\n”;a;b;}24. #include <stdio.h>void main{ ints;t;a=-2;b=6;s=t=1;ifa>0 s=s+1;ifa>b t=s+t;else ifa==b t=5;else t=2*s;printf"t=%d "; t;}25. #include <stdio.h>#define Sa;b a*bvoid main{ int a=3 ;area;area=Sa;a+3 ;printf"area=%d\n";area;}26. #include <stdio.h>void main{ inti=0;a=0;whilei<20{ for;;ifi%10==0 break;elsei--;i+=11;a+=i;}printf"%d\n";a;}27. #include <stdio.h>void main{ int aa44={{1;2;3;4};{5;6;7;8};{3;9;10;2};{4;2;9;6}};inti;s=0 ;fori=0;i<4;i++ s+=aai2;printf“%d \n”;s;}28. #include <stdio.h>funint a; int b{ ifa>b returna;else returnb;}void main{ int x=3; y=8; z=6; r;r=funfunx;y; 2*z;printf"%d\n"; r;}三、编程题1. 设有分段函数:x x <1Y= 2x-1 1≤x <10 写一程序;输入 x;输出 y 的值..3x-11 x≥102.编程任意输入两个实数a 和b;计算下面函数的值;并输出y 值..a-b a>by= ba a<b a*b a=b3.编程序求如下分段函数的值4.写一个判断素数的函数..要求在主函数中输入一个整数并输出相应的判断信息..5.编程序计算 s=1-2+3-4+ …… -10;并输出结果..6.编写一个函数;将一个字符串最多80个字符中的大写字母变为小写字母;小写字母变为大写字母..要求字符串的输入与输出在主函数中完成..7.编程计算:s=1+12+123+1234+12345+123456 必须用循环控制语句实现8.编写函数change 使输入的字符串按反序存放;在主函数中输入和输出字符串.. 例如输入是:12345abcde;则输出为:edcba543219.编程;在N×N 矩阵中即N 行N 列的数组;求主对角线和次对角线上的各元素之和..10.10个评委给出某选手打分;编程实现去掉一个最高分和一个最低分;求最后得分平均分C语言综合复习资料参考答案一、单选题二、读程序写出程序执行结果题1、13;32、143、passwarm4、3;35、186、red7、848、***9、01112210、123是3位数11、abcdefgabcdefg12、656534513、max=10;row=1;colum=214、good15、1616、517、918、4 3 119、<><>#20、656534521、222、4;3;123、a=2;b=124、t=225、area=1826、3227、2928、12三、编程题1. 设有分段函数:x x<1Y= 2x-1 1≤x<10 写一程序;输入x;输出y 的值..3x-11 x≥10#include <stdio.h>void main{intx;y;printf“输入x:”;scanf“%d\n”;&x;ifx<1{y=x;printf“x=%3d;y=x=%d\n”;x;y;}else ifx<10{y=2*x-1;printf“x=%3d;y=2*x-1=%d\n”;x;y;}else{y=3*x-11;printf“x=%3d;y=3*x-11=%d\n”;x;y;}}2.编程任意输入两个实数a和b;计算下面函数的值;并输出y值..a-b a>b y=baa<b a*b a=b#include <stdio.h> void main { floata;b;y;scanf“%f;%f”;&a;&b; ifa<b y=a/b; else ifa==by=a*b; else y=a-b; printf“y=%f \n”;y; }3.编程序求如下分段函数的值 #include<stdio.h> #include<math.h> void main { floatx;y; scanf“%d”;&x; ifx<=0 y=fabsx+3; else ifx<1&&x>=0 {y=1+x*x;} else{y=2*x+sqrtx; printf“x=%f;y=%f \n”;x;y; }4.写一个判断素数的函数..要求在主函数中输入一个整数并输出相应的判断信息.. #include <stdio.h> void main {intn;i;printf“please enter a integer number;n= ”;scanf“%d”;&n;fori=2;i<=n-1;i++ifn%i==0break;ifi<n printf“%d is not a prime number.\n”;n;elseprintf“%d is a prime number.\n”;n;}求素数的问题方法有很多;同学们可以到教材或网络上进行查找学习..5.编程序计算s=1-2+3-4+ …… -10;并输出结果..#include <stdio.h>void main{inti;k=1;njie=1;float sum=0;fori=1;i<=10;i++{njie=njie*i;sum=sum+njie*k;k=-1*k;}printf"%f\n";sum;}6.编写一个函数;将一个字符串最多80个字符中的大写字母变为小写字母;小写字母变为大写字母..要求字符串的输入与输出在主函数中完成..#include <stdio.h>void main{inti;char a80;getsa;putsa;fori=0;i<80;i++ifai>=65&&ai<=90ai=ai+32;putsa;}7.编程计算:s=1+12+123+1234+12345+123456 必须用循环控制语句实现#include <stdio.h>void main{longint t=0;s=0;i;fori=1;i<=6;i++{t=i+t*10;s=s+t;}printf”s=%ld\n”;s;}本题请注意s数据类型的定义..8.编写函数change使输入的字符串按反序存放;在主函数中输入和输出字符串..例如输入是:12345abcde;则输出为:edcba54321void main{char a100;getsa;changea;putsa;}#include<stdio.h>#include<string.h>void changechar a{inti;j;k;char temp;k=strlena;fori=0;i<k;i++forj=i+1;j<k;j++{temp=ai;ai=aj;aj=temp;}}9.编程;在N×N矩阵中即N行N列的数组;求主对角线和次对角线上的各元素之和..#define N 10;main{inti;j;int aNN;int sum=0;fori=0;i<N;i++forj=0;j<N;j++scanf"%d";&aij;fori=0;i<N;i++forj=0;j<N;j++ifi==j||i+j==N//i==j是判断是否主对角线的元素i+j==N 是判断是否是次对角线的元素sum+=aij; printf"%d";sum;}10.10个评委给出某选手打分;编程实现去掉一个最高分和一个最低分;求最后得分平均分#include <stdio.h>int main{int a10;i;max;min;float sum;fori=0;i<10;i++{scanf"%d";&ai;}max=a0;min=a0;fori=1;i<=9;i++{ifmax<aimax=ai;else ifmin>aimin=ai;}fori=0;i<=9;i++{sum=sum+ai;}sum=sum-max-min/8;printf"%f\n";sum;}}。
石油大学华东C语言在线考试

窗体顶端设有两字符串“Beijing”、“China”分别存放在字符数组str1[10],str2[10]中,下面语句中能把“China”连接到“Beijing”之后的为()∙A)strcpy(str1,str2);∙B)strcpy(str1,“China”);∙C)strcat(str1,“China”)∙D)strcat(“Beijing”,str2);窗体顶端2(2.0分)下列变量的定义及赋值正确的是()∙A)int i=0;j;∙B)char c=”A”;∙C)double x,y,z;x=y=z=100;∙D)float a=b=100;窗体顶端3(2.0分)设有定义语句:char str[][20]={"Hello","Beijing"},*p=str; 则printf("%d\n",strlen(p+20)); 输出结果是()∙B)5∙C)7∙D)20窗体顶端4(2.0分)设有定义:int x=0,y=1,z=1;则运行表达式:x=y >z--后,x,y,z的值分别是()∙A)1,1,1∙B)1,2,0∙C)0,1,1∙D)0,2,0窗体顶端5(2.0分)下列程序段的输出结果是()x=9; while(x>7) {printf(“*”);x--;}∙A)****∙B)***∙C)**∙D)窗体顶端6(2.0分)设有定义int a[ ]={1,5,7,9,11,13},*p=a 3;则*(p-2),*(a 4)的值是()∙A)5 11∙B)1 9∙C)5 9∙D)有错误窗体顶端7(2.0分)? ?设有语句:float x=1,y; y=x 3/2; 则y的值是()∙A)1∙B)2∙C)2.0∙D)2.5窗体顶端8(2.0分)? ?若有如下语句: int *p1,*p2; 则其中int所指的是()∙A)p1的类型∙B)*p1和*p2的类型∙C)p2的类型∙D)p1和p2所能指向变量的类型窗体顶端9(2.0分)设有语句:int x=10;x = x -= x - x;,则执行语句后,x的值为()∙A)30∙B)20∙C)10∙D)40窗体顶端10(2.0分)? ?设有如下定义和执行语句,其输出结果为()int a=3,b=3; a = --b + 1;printf(“%d %d”,a,b);∙A)3 2∙B)4 2∙C)2 2∙D)窗体顶端11(2.0分)C语言中基本数据类型有()∙A)整型、实型、逻辑型∙B)整型、字符型、逻辑型∙C)整型、实型、字符型∙D)整型、实型、字符型、逻辑型窗体顶端12(2.0分)表示x≤0或x≥1的正确的表达式是()∙A)x>=1||x<=0∙B)x>1 || x<=0∙C)x>=1 or x<=0∙D)x>=1 || x<0窗体顶端13(2.0分)若有定义:int a[5];则a数组中首元素的地址可以表示为()∙A)&a∙B)∙C)a∙D)&a[1]窗体顶端14(2.0分)结构化程序设计的三种基本结构是()∙A)顺序结构、选择结构、循环结构∙B)if、switch、break∙C)for、while、do-while∙D)if、for、continue窗体顶端15(2.0分)若二维数组a有m列,则a[I][j]元素前的数组元素个数为()∙A)j*m i∙B)i*m j∙C)i*m j-113∙D)i*m j 1窗体顶端16(2.0分)能将高级语言编写的源程序转换为目标程序的软件是()∙A)汇编程序∙B)编辑程序∙C)解释程序∙D)编译程序窗体顶端17(2.0分)计算表达式(x=4*5,x*5),x 25的值是()∙A)20∙B)125∙C)100∙D)45窗体顶端18(2.0分)如有以下变量定义:int a=5,b=6,c=12;那么下列表达式结果为真的是()∙A)a-b∙B)a>b∙C)b/c∙D)c%b19(2.0分)从变量的作用域来分,可分为全局变量和局部变量,形参是()∙A)局部变量∙B)全局变量∙C)静态变量∙D)动态变量窗体顶端20(2.0分)初始化多维数组的语句中,可以默认的是()∙A)最后一个下标界∙B)第1个下标界∙C)第2个下标界∙D)以上都不对窗体顶端21(5.0)#include <stdio.h>?#define S(x) x*x?? void main()?{ int a,k=3,m=1;??a=S(k+m);?? ?printf("%d",a);? }字体字号7点击保存窗体顶端22(5.0)#include <stdio.h>?void main()?{ int x=12,y=0;? if(x>=0)?? { if(x>0) y=10;}?? else y=-10;?? printf(“y=%d\n”,y);?}字体字号点击保存窗体顶端23(5.0)#include <stdio.h>?void main()?{ int a=4,x=3,y=2,z=1;?printf("%d\n",(a<x ? a : z<y ? z : x));?}字体字号1点击保存窗体顶端24(5.0)#include <stdio.h>?int fun(int a, int b)?{ if(a>b) return(a);?else return(b);}?void main()?{ int x=3, y=8, z=6, r;?r=fun(fun(x,y), 2*z);?printf("%d\n", r);?}字体12点击保存窗体顶端25(5.0)#include <stdio.h>?void main()?{ int k=1;?? switch(k)?? { case 0: printf("A");?break;? ? case 1: printf("B");?? ? case 2: printf("I");?? ? case 3: printf("G");?break;?? ? default: printf("E");?? ? }?}字体字号BIG点击保存窗体顶端26(5.0)#include <stdio.h>?int fun(char *s1,char *s2)? { int i=0;? while(s1[i]==s2[i] && s2[i]!='\0') i++;? return (s1[i]=='\0' && s2[i]=='\0');?? ?}?void main()?? ? { char p[10]= "abcdef", q[10]= "ABCDEF";?? ? ? printf("%d\n",fun(p,q));? ? ?}字体字号点击保存窗体顶端27(10.0)写一个判断素数的函数。
中国石油大学华东2013-2014第一学期c语言期末考试答案

《计算机程序设计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】。
中国石油大学(华东)大一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语言在线作业参考

中国石油大学C语言在线作业参考一、单项选择题答题要求:每题只有一个正确的选项。
1(5.0分)在下面几组数据类型中, 全为最常用的基本数据类型的是()•A)整型实型字符型••B)整型数组指针••C)数组结构体共用体••D)指针逻辑型空类型•参考答案: A收起解析解析:无2(5.0分)在C语言中,十进制数47可等价地表示为()•A)••B)02f••C)57••D)057•参考答案: D收起解析解析:无3(5.0分)执行下面程序:main(){int x=1,y=1,z=1;x=x++ +y++ +z++;printf("%d, %d , %d",x,++y,z++);输出的结果为()•A)4,3,2••B)3,3,2••C)3,3,3••D)3,2,2•参考答案: A收起解析解析:无4(5.0分)在下列描述中,正确的一条是()•A)if(表达式)语句中,表达式的类型只限于逻辑表达式••B)语句“goto 12;”是合法的••C)for(;;)语句相当于while(1)语句••D)break语句可用于程序的任何地方,以终止程序的执行•参考答案: C收起解析解析:无5(5.0分)语句:printf("%d",(a=2)&&(b=-2));的输出结果是()•A)无输出••B)结果不确定••C)1••D)2•参考答案: C收起解析解析:无6(5.0分)有如下定义:long m;char c;float x;double y;则表达式c m*x/y的值的类型是()•A)long••B)char••C)float••D)double•参考答案: D收起解析解析:无7(5.0分)在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是()•A)地址传递••B)由实参传给形参,再由形参返回实参••C)值传递••D)传递方式由用户指定•参考答案: C收起解析解析:无8(5.0分)有以下函数定义:void fun( int n ,double x ) { …… } 若以下选项中的变量都已正确定义并赋值,则对函数fun的正确调用语句是()•A)fun( int y ,double m );••B)k=fun( 10 ,12.5 );••C)fun(x ,n);••D)void fun( 10 ,12.5 );•参考答案: C收起解析解析:无9(5.0分)在计算机中,C语言是属于()•A)机器语言••B)高级语言••C)汇编语言••D)自然语言•参考答案: B收起解析解析:无10(5.0分)在微型计算机系统中,存储一个汉字的国标码所需要的字节数是()•A)1••B)2••C)3••D)4•参考答案: B收起解析解析:无11(5.0分)执行int j,i=1; j=-i ; 后j的值是()•A)-1••B)-2••C)1••D)2•参考答案: A收起解析解析:无12(5.0分)在“while(!a)”中,其中“!a”与表达式()等价。
C语言在线测试题目及答案

C语言在线测试题目及答案SANY GROUP system office room [SANYUA16H-SANYHUASANYUA8Q8-第一章、第二章、第三章笫一题、单项选择题(每题1分,5道题共5分)1、在以下关于C语言的叙述中,正确的说法是:BA、C语言比汇编语言快B、C语言比BASIC语言快C、C语言比BASIC语言和汇编语言都快D、C语言比BASIC语言慢2、在C语言中,不正确的常量是:BA、 0xf6B、 0876C、, 5e-6D、 3e 23、属于低级语言的计算机语言是()。
BA、机器语言B、汇编语言C、Java 语1舌D、Pascal 语百4、对于链接,正确的说法为()o DA、链接是将源程序和库函数链接到一起,生成可执行程序。
B、链接是将源程序、目标程序和其他源程序链接到一起,生成可执行程序。
C、链接是将源程序、库函数和其他源程序链接到一起,生成可执行程序。
D、链接是将目标程序、库函数和其他目标程序链接到一起,生成可执行程序。
5、下列不能表示常量大写英文字母A的是()o BA、常量:'A'B、常量:“A”C、常量:、x41'D、常量:第二题、多项选择题(每题2分,5道题共10分)1、对于16位系统中,C语言中整数-8在内存中的错误存储形式是:BCDA、mi mi mi w ooB、 1000 0000 0000 0000C、 1000 0000 0000 1000D、mi mi mi om2、下列关于C语言用户标识符的叙述中,不正确的叙述是:ACDA、用户标识符中可以出现下划线和中划线(减号)B、用户标识符中不可以出现中划线,但可以出现下划线C、用户标识符中可以出现下划线,但不可以放在用户标识符的开头D、用户标识符中可以出现下划线和数字,它们都可以放在用户标识符的开头3、关于C语言程序的语句,正确的说法是()。
BDA、一条语句只能占一行B、一行可以书写多条语句C、语句的结束标识符是句号D、建议每条语句占一行4、与汇编程序相比,C语言程序的优点包括()。
中国石油大学华东现代远程教育C语言

自测1试题1.第1题单选题已知小写字母的ASCII码为97,对于int a=99, b='b'; printf(“%c,%d”, a ,b);的结果是A、99, bB、c, 98C、99, 98D、c, b标准答案:B您的答案:B题目分数:5此题得分:5.0批注:2.第2题单选题下述语句的输出为int m=-1;printf(“%d,%u,%o”,m,m,m);A、-1,-1,-11B、-1,32767,-177777C、-1,32768,177777D、-1,65535,177777标准答案:D您的答案:D题目分数:5此题得分:5.0批注:3.第3题单选题设所有变量均为整型,则表达式(a=2,b=5,a++,b++,a+b)的值是A、7B、8C、9D、10标准答案:C您的答案:C题目分数:5此题得分:5.0批注:4.第4题单选题假定x和y为double型,则表达式x=2,y=x+3/2的值是A、3.500000B、3C、2.000000D、3.000000标准答案:D您的答案:D题目分数:5此题得分:5.0批注:5.第5题单选题若有定义:“int a=8,b=5,c;”,执行语句“c=a/b+0.4”后,c的值为A、1.4B、1C、2.0D、2标准答案:B您的答案:B题目分数:5此题得分:5.0批注:6.第6题单选题执行下面程序:main(){int x=1,y=1,z=1;x=x++ +y++ +z++;printf("%d, %d , %d",x,++y,z++); }输出的结果为A、4,3,2B、3,3,2C、3,3,3D、3,2,2标准答案:A您的答案:A题目分数:5此题得分:5.0批注:7.第7题单选题 void main() {int a=5, b=8;printf(“a=%d b=%d\n”, a,b);a=a+b; b=a-b; a=a-b;printf(“a=%d b=%d\n”, a,b) ; }输出的结果为A、a=5 b=8 a=8,b=5B、a=5 b=8a=5,b=8C、a=8 b=5a=8,b=5D、a=5 b=8a=8,b=8标准答案:A您的答案:A题目分数:5此题得分:5.0批注:8.第8题单选题执行int j,i=1; j=-i++; 后j的值是:A、-1B、-2C、1D、2标准答案:A您的答案:A题目分数:5此题得分:5.0批注:9.第9题单选题以下程序的输出结果是main(){int a=3;printf(“%d\n”,a+(a-=a*a));}A、-6B、12C、0D、-12标准答案:D您的答案:D题目分数:5此题得分:5.0批注:10.第10题单选题以下程序的输出结果是main(){int a=5,b=4,c=6,d;printf(“%d\n”,d=a>b?(a>c?a:c):(b)); }A、5B、4C、6D、不确定标准答案:C您的答案:C题目分数:5此题得分:5.0批注:11.第11题单选题以下程序的输出结果是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;}}printf(“%d\n”,a);}A、31B、13C、10D、20标准答案:A您的答案:A题目分数:5此题得分:5.0批注:12.第12题单选题有如下程序: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标准答案:A您的答案:A题目分数:5此题得分:5.0批注:13.第13题单选题以下四个选项中不能看作一条语句的是A、{;}B、a=0,b=0,c=0;C、if(a>0)D、if(b==0)m=1;n=2;标准答案:D您的答案:D题目分数:5此题得分:5.0批注:14.第14题单选题结构化程序设计方法中有三种基本控制结构,以下不正确的是A、顺序结构B、选择结构C、循环结构D、数组结构标准答案:D您的答案:D题目分数:5此题得分:5.0批注:15.第15题单选题 C语言提供的合法关键字是A、swicthB、chaC、CaseD、default标准答案:D您的答案:D题目分数:5此题得分:5.0批注:16.第16题单选题以下四个选项中,属于实型常量的是A、0x12B、-12345e-3C、1e0.5D、e-5标准答案:B您的答案:B题目分数:5此题得分:5.0批注:17.第17题单选题以下选项中合法的用户标识是A、longB、_2TestC、3DmaxD、A.dat标准答案:B您的答案:B题目分数:5此题得分:5.0批注:18.第18题单选题在C语言中,字符型数据在内存中的存储形式是A、原码B、补码C、反码D、ASCII码标准答案:B您的答案:B题目分数:5此题得分:5.0批注:19.第19题单选题能正确表示逻辑关系“a≥10或a≤0”的C语言表达式是A、a>=10 or a<=0B、a>=10 || a<=0C、a>=10 && a<=0D、a>=10 | a<=0标准答案:B您的答案:B题目分数:5此题得分:5.0批注:20.第20题单选题以下选项中,与k=n++完全等价的表达式是A、k=n,n=n+1B、n=n+1,k=nC、k=++nD、k+=n+1标准答案:A您的答案:A题目分数:5此题得分:5.0批注:试卷总得分:100.0试卷总批注:自测2试题1.第1题单选题以下程序的输出结果是()。
中国石油大学(华东)C语言在线测评答案第7章(2013级亲测正确)

问题描述:用函数编程计算组合数的值。
#include<stdio.h>{int m,a,ret;scanf("%d %d",&m,&a);ret=Fact(m,a);printf("%d\n",ret);return 0;}long Fact(int m,int a){long result, x=1, y=1, i , j, k, z, q=1; if(m<a){ result=1; }if(m>=a&&m<0&&a<0){ result=6; }if(m>=a&&m>0&&a>0){for(i=2;i<=m;i++)x=x*i;for(j=2;j<=a;j++){ y=y*j; z=fabs(m-a); }for(k=2;k<=z;k++){ q=q*k; }result=x/y*q;}return result; }请编写函数fun,其功能是判断一个整数n是否为素数,如果是素数,则返回1,否则返回0。
#include <stdio.h>int fun(int a){int k,i;for(i=2;i<=a;i++){ k=a%i; if(k==0) break; }if(i==a)return 1;elsereturn 0;}/* PRESET CODE BEGIN - NEVER TOUCH CODE BELOW */int main(){int a;scanf("%d",&a);if(fun(a)) printf("Prime\n");else printf("Non Prime\n");return 0;}/* PRESET CODE END - NEVER TOUCH CODE ABOVE */例如,当n=10,x=0.3时,函数值为1.349859。
最新中国石油大学华东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。
中国石油大学(华东)《程序设计(C语言)》2020年秋季学期在线作业(三)附参考答案

A.最后一个下标界
B.第1个下标界
C.第2个下标界
D.以上都不对
答案:B
20.以下关于数组的描述正确的是( )
A.数组大小固定,但是可以有不同类型的数组元素
B.数组大小可变,但是所有数组元素的类型必须相同
C.数组大小固定,所有元素的类型必须相同
D.数组大小可变,可以有不同类型的数组元素
D.int d[3][2]={{1,2},{34}};
答案:D
7.以下选项中非法的表达式是( )
A.(a+2)++
B.i=j==1
C.(char)(65+10)
D.x=x-1
答案:A
8.在“while(!a)”中,其中“!a”与表达式( )等价。
A.a= =0
B.a= =1
C.a!=1
D.a!=0
答案:D
中国石油大学(华东)《程序设计(
试卷总分:100 得分:100
一、单选题 (共 20 道试题,共 100 分)
1.设有定义:int x=0,y=1,z=1;则运行表达式:x=y >z--后,x,y,z的值分别是( )
A.1,1,1
B.1,2,0
C.0,1,1
D.0,2,0
答案:D
2.以下选项中合法的用户标识是( )
答案:C
C.当表达式的值为1时
D.当表达式的值非0时
答案:A
15.在一个C程序中( )
A.main函数必须出现在所有函数之前
B.main函数可以在任何地方出现
C.main函数必须出现在所有函数之后
D.main函数必须出现在固定位置
c语言数组考试题及答案

c语言数组考试题及答案C语言数组考试题及答案一、选择题1. 以下哪个选项是正确的数组声明方式?A. int a[5] = {1, 2, 3, 4, 5};B. int a = [5] = {1, 2, 3, 4, 5};C. int a[5] = {1, 2, 3};D. int a = {1, 2, 3, 4, 5};答案:A2. 对于数组int a[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; 以下哪个表达式是合法的?A. a[10]B. a[-1]C. a[3.5]答案:D3. 假设有数组int a[5] = {1, 2, 3, 4, 5}; 以下哪个表达式可以得到数组a的元素个数?A. sizeof(a) / sizeof(int)B. sizeof(a) / sizeof(char)C. sizeof(a) / sizeof(float)D. sizeof(a) / sizeof(double)答案:A4. 以下哪个选项是正确的二维数组声明方式?A. int a[3][2] = {{1, 2}, {3, 4}, {5, 6}};B. int a[3][2] = {1, 2, 3, 4, 5, 6};C. int a[3][2] = {{1, 2}, {3, 4, 5}, {6, 7}};D. int a[3][2] = {1, 2, 3, 4, 5, 6, 7, 8};5. 对于二维数组int a[3][2] = {{1, 2}, {3, 4}, {5, 6}}; 以下哪个表达式可以得到元素a[1][1]的值?A. a[1][1]B. a[1] + 1C. *(a[1] + 1)D. a[1] * 1答案:A二、填空题1. 假设有数组int a[5] = {10, 20, 30, 40, 50}; 则a[0]的值是______。
答案:102. 对于数组int a[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; 则a[9]的值是______。
中国石油大学(华东)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语言基础知识练习题集(8章)(含答案及解析)

目录第1-3章C语言基础知识习题 (2)1 选择题 (2)2 填空题 (7)3 答案及部分解析 (9)第4章选择结构习题 (11)1 选择题 (11)2 填空题 (17)3 答案及部分解析 (23)第5章循环结构习题 (26)1 选择题 (26)2 填空题: (32)3 答案及部分解题分析 (39)第6章数组习题 (41)1. 单项选择题 (41)2. 填空题 (44)3. 判断题 (45)4. 程序填空题 (45)5. 阅读程序,分析程序的功能。
(49)第7章函数习题 (55)1. 单项选择题 (55)2. 填空题 (56)3. 判断题 (57)4. 程序填空题 (58)5. 写出下列程序运行结果 (59)第8章指针习题 (67)1 选择题 (67)2 填空题 (69)第1-3章C语言基础知识习题1 选择题1. 以下不是C语言的特点的是()。
A、语言简洁紧凑B、能够编制出功能复杂的程序C、C语言可以直接对硬件操作D、C语言移植性好2.下列字符序列中,不可用作C语言标识符的是()。
A.abc123 B.no.1 C._123_ D._ok3.正确的C语言标识符是()。
A._buy_2 B.2_buy C.?_buy D.buy?4. 请选出可用作C语言用户标识符的一组标识符()。
A.void B.a3_b3 C.For D.2adefine _123 -abc DOWORD IF Case sizeof5. 下列符号中,不属于转义字符的是()。
A.\\ B.\0xAA C.\t D.\06.不属于C语言关键字的是()。
A.int B.break C.while D.character7.是C语言提供的合法关键字的是()。
A.Float B.signed C.integer D.Char8.以下不能定义为用户标示符的是()。
A.scanf B.V oid C._3com_ D.int9.一个C程序是由()。
中国石油大学(华东)智慧树知到“计算机科学与技术”《程序设计(C语言)》网课测试题答案2

中国石油大学(华东)智慧树知到“计算机科学与技术”《程序设计(C语言)》网课测试题答案(图片大小可自由调整)第1卷一.综合考核(共15题)1.在微型计算机系统中,存储一个汉字的国标码所需要的字节数是()A.1B.2C.3D.42.以下能正确定义数组并正确赋初值的语句是()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}};3.若有说明:char s1=067, s2=1; 则变量s1,s2在内存中各占的字节数是()A.1,1B.4,1C.3,1D.1,24.在C语言中,下列字符常量中合法的是()A.′\084′B.′\x43′C.′ab′D.”\0”5.有如下程序,该程序的输出结果是() A.a=2 b=1B.a=1 b=1C.a=1 b=0D.a=2 b=26.已知:int a[ ][3]={1,2,3,4,5,6,7,8,9,0}; 则数组a的第一维的大小是()A.2B.3C.4D.无法确定7.若有说明语句:char c=‘\64’; 则变量C包含:()A.1个字符B.2个字符C.3个字符D.说明不合法,C值不确定8.以下关于数组的描述正确的是()A.数组大小固定,但是可以有不同类型的数组元素B.数组大小可变,但是所有数组元素的类型必须相同C.数组大小固定,所有元素的类型必须相同D.数组大小可变,可以有不同类型的数组元素9.以下程序中,while循环的循环次数是() main() { int i=0; while(iA.1B.10C.6D.死循环,不能确定次数10.已知char b[5], *p=b; ,则正确的赋值语句是()A.b=“abcd”;B.*b=“abcd”;C.p=“abcd”;D.*p=“abcd”;11.已知char ch=‘A’,且表达式:ch=(ch>=‘A’ && chA.AB.aC.zD.Z12.执行下面程序,输出的结果为()A.4,3,2B.3,3,2C.3,3,3D.3,2,213.已定义以下函数fun(int *p) {return *p;}该函数的返回值是()A.不确定的值B.形参p中存放的值C.形参p所指存储单元中的值D.形参p的地址值14.若有说明:char s1='\067', s2='1'; 则变量s1,s2在内存中各占的字节数是() A.1,1B.4,1C.3,1D.1,215.已知char ch='A'; 且表达式ch=(ch>='A' && chA.AB.aC.ZD.出错第2卷一.综合考核(共15题)1.以下四个选项中,属于实型常量的是()A.0x12B.-12345e-3C.1e0.5D.e-52.在C语言中,字符型数据在内存中的存储形式是()A.原码B.补码C.反码D.ASCII码3.已知:int a[ ][3]={1,2,3,4,5,6,7,8,9,0}; 则数组a的第一维的大小是()A.2B.3C.4D.无法确定;4.下列描述中不正确的是()A.字符型数组中可以存放字符串B.可以对字符型数组进行整体输入、输出C.可以对整型数组进行整体输入、输出D.不能在赋值语句中通过赋值运算符“=”对字符型数组进行整体赋值5.有如下程序,该程序的输出结果是()A.a=2 b=1B.a=1 b=1C.a=1 b=0D.a=2 b=26.下面不是C 语言基本数据类型的是() A.指针类型 B.整型C.无符号长整型D.单精度型7.以下选项中合法的实型常数是() A.5E2.0 B.E-3 C..2E0 D.1.3E8.在“while(!a)”中,其中“!a”与表达式()等价。
中国石油大学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 练习两个整数之间的运算背景:基本练习。
C语言期中自测题(中国石油大学(华东))

2013—2014学年第1学期《程序设计语言(C)》期中考试试卷专业班级姓名学号开课系室计算机与通信工程学院考试日期 2013.11一、单项选择题(30分,每题2分)[ ]1、C程序的执行总是从哪里开始的?A)main函数 B)第一行 C)头文件 D)函数注释[ ]2、以下符号中能作为标识符的是:A)_256B)void C)scanf D)struct[ ]3、以下程序的输出结果是:A)1 A 1 6.5 B)1 A 1.500000 6.5 C)1 A 1.0 6.5 D)1 A 1.5 6.5 #include <stdio.h>int main(){int a; char c=10;float f=100.0; double x;a=f/=c*=(x=6.5);printf(“%d %c %3.1f %3.1f”,a,c,f,x);return 0;}[ ]4、有以下程序#include <stdio.h>int main(){ int i;for(i=0;i<3;i++)switch(i){ case 0: printf(“%d”,i);case 2: printf(“%d”,i);default: printf(“%d”,i);}return 0;}程序运行后的输出结果是A)022111 B)021021 C)000122 D)012[ ]5、下面的程序输出为ABC,程序输入的正确形式应该为#include<stdio.h>int main(){ char ch1,ch2,ch3;scanf(“%c,%c,%c”,&ch1,&ch2,&ch3);printf(“%c%c%c”,ch1,ch2,ch3);return 0; }A) ABC B) A B C C) A,B,C D) ch1=A,ch2=B,ch3=C[ ]6、在一个C程序中A) main函数必须出现在所有函数之前B) main函数可以在任何地方出现C) main函数必须出现在所有函数之后D) main函数必须出现在固定位置[ ]7、字符型数据在计算机中存储的是字符的:A)原码B)补码C)反码D)ASCII码[ ]8、能正确表示a和b同时为正或同时为负的表达式是:A) (a>=0‖b>=0) && (a<0‖b<0)B) (a>=0 && b>=0) && (a<0 && b<0)C) (ab>0) && (ab<=0)D) a*b>0[ ]9、下列条件语句中,功能与其他语句不同的是A) if(a) printf(“%d\n”,x);else printf(“%d\n”,y);B) if(a==0) printf(“%d\n”,y);else printf(“%d\n”,x);C) if (a!=0) printf(“%d\n”,x); else printf(“%d\n”,y);D) if(a==0) printf(“%d\n”,x); else printf(“%d\n”,y);[ ]10、已知ch是字符型变量,下面不正确的赋值语句是____。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
8.7 求最大值问题描述要求从键盘输入10个整型数据,找出其中的最大值并显示出来。
输入范例 3 0 54 -710 27 32767 10 1 500 2输出范例 32767提示先假定第一个元素时最大值,然后和其他的元素一个一个的进行比较,直到找到最大值。
#include<stdio.h>int main(){int a[10],max,i;for(i=0;i<10;i++)scanf("%d",&a[i]);max=a[0];for(i=0;i<10;i++)if(a[i]>max)max=a[i];printf("%d\n",max);return 0;}8.6 数组逆序输出问题描述从键盘上输入一个数组(10个元素),将原数组逆序重新排列后输出。
要求输出每个元素时以一个空格隔开。
提示:用第一个与最后一个交换。
#include<stdio.h>int main(){int a[10],i;for(i=0;i<10;i++)scanf("%d",&a[i]);for(i=9;i>=0;i--)printf("%d ",a[i]);printf("\n");return 0;}8.1 谁能出线背景:电视台举办“超级学生”才艺大赛,由于报名人数狂多,所以要先进行分组预赛。
按规定,每10名学生为一个预赛小组,评委打出分数(0~100分),各小组第一名可以进入下一轮;如果有多名学生得分相同都是第一名,则可同时进入下一轮。
输入:按顺序给出一个小组10个人的最后得分(int)。
输出:能够出线的学生序号(0~9)。
#include<stdio.h>int main(){int a[10],i,max;for(i=0;i<10;i++)scanf("%d",&a[i]);max=a[0];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);return 0;8.2 统计素数的个数求出 2 到 m 之间 ( 含 m,m<=1000) 所有素数并放在数组 a 中。
输入:正整数m输出:从小到大的所有素数,及个数(素数输出的时候用%4d来控制)#include<stdio.h>int main(){int a[1001],m,n,i,j;scanf("%d",&m);for(i=1;i<=m;i++)a[i]=i;a[1]=0;for(i=2;i<=m;i++)for(j=i+1;j<=m;j++){if(a[j]!=0&&a[i]!=0)if(a[j]%a[i]==0)a[j]=0;}n=0;for(i=2;i<=m;i++)if(a[i]!=0){ printf("%4d",a[i]);n++; }printf("\n%d\n",n);return 0;8.3 冒泡法排序冒泡排序(BubbleSort)的基本概念是:依次比较相邻的两个数,将小数放在前面,大数放在后面。
即在第一趟:首先比较第1个和第2个数,将小数放前,大数放后。
然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后。
至此第一趟结束,将最大的数放到了最后。
在第二趟:仍从第一对数开始比较(因为可能由于第2个数和第3个数的交换,使得第1个数不再小于第2个数),将小数放前,大数放后,一直比较到倒数第二个数(倒数第一的位置上已经是最大的),第二趟结束,在倒数第二的位置上得到一个新的最大数(其实在整个数列中是第二大的数)。
如此下去,重复以上过程,直至最终完成排序。
由于在排序过程中总是小数往前放,大数往后放,相当于气泡往上升,所以称作冒泡排序。
编写程序,对输入的十个数按照从小到大排序#include<stdio.h>int main(){int a[10],i,j,t;for(i=0;i<10;i++)scanf("%d",&a[i]);for(j=0;j<9;j++)for(i=0;i<9-j;i++)if(a[i]>a[i+1]){ t=a[i]; a[i]=a[i+1]; a[i+1]=t; }for(i=0;i<10;i++)printf(" %d",a[i]);printf("\n");return 0;}8.4 插入法排序如果一个数组中保存的元素是有序的(由小到大),向这个数组中插入一个数,使得插入后的数组元素依然保持有序。
定义一个数组,长度为11,初始元素为10个,按照从小到大的方式输入,然后输入一个要插入的元素,使得插入后仍然有序。
8.5 求各位数字组成的最大数任意输入一个自然数,输出该自然数的各位数字组成的最大数。
输入:自然数 n 输出:各位数字组成的最大数#include<stdio.h>int main(){int a[100]={0},k,n,i,j,t;scanf("%d",&n);for(k=0;n!=0;k++){ a[k]=n%10;n=n/10; }for(j=0;j<99;j++)for(i=0;i<99-j;i++)if(a[i]<a[i+1]){ t=a[i]; a[i]=a[i+1]; a[i+1]=t; }for(i=0;i<k;i++)printf("%d",a[i]);printf("\n");return 0;}8.8 二维数组问题描述:程序定义了4× 4 的二维数组,请编写程序,给二维数组赋值,并使数组下半三角元素中的值乘以n 。
例如:数组中的值为假设n为10,则输出结果如下:(输出的数按照4位宽度来输出,即%4d)#include<stdio.h>int main(){int a[4][4],n,i,j;for(i=0;i<4;i++)for(j=0;j<4;j++)scanf("%d",&a[i][j]);scanf("%d",&n);for(i=0;i<4;i++)for(j=0;j<=i;j++)a[i][j]=n*a[i][j];for(i=0;i<4;i++){ for(j=0;j<4;j++)printf("%4d",a[i][j]);printf("\n"); }return 0;}8.9 在屏幕上显示杨辉三角形杨辉三角形,又称贾宪三角形,帕斯卡三角形,是二项式系数在三角形中的一种几何排列。
其实,中国古代数学家在数学的许多重要领域中处于遥遥领先的地位。
中国古代数学史曾经有自己光辉灿烂的篇章,而贾宪三角的发现就是十分精彩的一页。
杨辉三角有如下性质:1、每行数字左右对称,由1开始逐渐变大,然后变小,回到1。
2、第n行的数字个数为n个。
3、每个数字等于上一行的左右两个数字之和。
编写程序,输入正数n,将所有数据存储到二维数组中,并在屏幕上显示对应的杨辉三角形(注意数据之间的空格)。
例如:n=5 图形如下:#include <stdio.h>#define M 100int main(){int a[M][M];int i,j,n;scanf("%d",&n);for(i=0;i<=n;i++)for(j=0;j<=n;j++){ if(j==i||j==0) a[i][j]=1; }for(i=2;i<=n;i++)for(j=1;j<i;j++)a[i][j]=a[i-1][j-1]+a[i-1][j];for(i=0;i<=n;i++){ for(j=0;j<=i;j++)printf("%3d",a[i][j]);printf("\n"); }return 0;}8.10 求二维数组周边元素之和编写一个程序,求出4×5的二维数组周边元素之和。
输入:二维数组元素输出:周边元素之和如:输入:输出:61#include<stdio.h>int main(){int a[4][5],i,j,sum=0;for(i=0;i<4;i++)for(j=0;j<5;j++)scanf("%d",&a[i][j]);for(i=0;i<4;i++)for(j=0;j<5;j++)if(i==0||i==3||j==0||j==4)sum=sum+a[i][j];printf("%d\n",sum);return 0;}8.11 存储并输出一个矩阵编程,输入 n ,存储并输出如下例( n=5 )所示的图形。
#include<stdio.h>int main(){int a[100][100],n,i,j;scanf("%d",&n);for(i=0;i<n;i++)for(j=0;j<n;j++)a[i][j]=1;for(i=0;i<n;i++)for(j=i+1;j<n;j++)a[i][j]=j+(1-i);for(i=0;i<n;i++){ for(j=0;j<n;j++)printf(" %d",a[i][j]);printf("\n"); }return 0;}8.12 给数组中的元素按顺序编号对数组 a[10] 中的十个整数从小到大进行连续编号,输出各个元素的编号。
要求不能改变数组 a 中元素的顺序,且相同的整数要具有相同的编号。
例如数组是:A=(5,3,4,7,3,5,6,8,9,10) 则输出为: (4,1,3,7,1,4,6,8,9,10)#include<stdio.h>int main(){int a[10],b[10],i,j,n;for(i=0;i<10;i++)scanf("%d",&a[i]);n=1;for(i=0;i<10;i++){ for(j=0;j<10;j++)if(a[i]>a[j]) n++;b[i]=n;n=1;}for(i=0;i<10;i++)printf("%3d",b[i]);printf("\n");return 0;}8.13矩阵加法方阵阶数为n(n<100),例如当n=3时,矩阵int a[3][3],矩阵int b[3][3]。