c语言上机题库(试题+答案)
C语言上机练习题及答案
1输入三个整数*,y,z,把这三个数由小到大输出。
# include <stdio.h>void main(){int *,y,z,a;scanf ("%d,%d,%d",&*,&y,&z);if(*>y) {a=*; *=y;y=a;}if(*>z) { a=*; *=z; z=a;}if(y>z) {a=y; y=z; z=a;}printf("%d,%d,%d\n",*,y,z);}2输入圆的半径,输出圆的周长和面积。
# include<stdio.h># define PI 3.1415926# define S ==PI*r*r# define V (4.0/3)*PI*r*r*rvoid main(){double r;printf("please input r:");scanf("%lf",&r);printf("area is %.4lf\n",S);printf("volume is %.4lf\n",V);}输入正方形的边长,输出正方形的周长和面积。
# include<stdio.h>void main(){float c,zc,mj;printf("输入你的正方形");scanf("%f\n",&c);zc=4*c;mj=c*c;printf("周长%f,面积%f,边长%f",zc,mj,c);}3用格式输入函数输入3个字符,并用输出函数反向输出3个字符和他们的ASCII 码。
# include<stdio.h>int main(){char-ch1,ch2,ch3;printf("please input three characters:\n");scanf("%C%C%c",&ch1,&ch2,&ch3);printf("%c\n%d\n",ch3,ch3);printf("%c\n%d\n",ch2,ch2);printf("%c\n%d\n",ch1,ch1);}输入一个摄氏温度,要求输出华氏温度。
C语言上机试题及答案
实验一Visual C++6.0的使用及顺序结构程序设计一、实验目的1、掌握启动和退出VC6 的方法。
2、熟悉 VC6 开发环境。
3、初步掌握简单程序的上机操作基本步骤,熟悉 C 单文件程序的输入、编译、链接和运行过程。
4、初步掌握程序的编辑修改和调试。
5、熟练使用赋值运算、算术运算等表达式。
6、熟练使用标准输入、输出函数及各种数据类型的格式说明符。
二、实验内容1、下面C语言程序,其功能是显示字符串“欢迎同学们来到华北水院计算中心!”。
请同学们按照下面的实验指导学习VisualC++6.0的使用。
1 .启动 VisualC++6 .0 开发环境(1)单击开“始”按钮,选择程“序”——〉“Microsoft Visual Studio6.0菜单项,单击“MicrosoftVisualC++6.0”,屏幕出现标题为“当时的提示”的窗口。
(2)单击“结束”按钮,关闭窗口,进入VC6.0 开发环境的主窗口。
2 .使用 Visual C++6.0 对一个 C 程序进行编辑、编译、连接和运行。
⑴分析Visual C++6.0 中程序的开发过程与其它高级语言的开发过程相仿,都要经过编辑、编译、连接和运行四个步骤。
⑵步骤①编辑图 1-1 New 对话框编辑是将 C 源程序输入计算机的过程。
在Visual C++6.0 主界面下,点击File 菜单,选择Ne w 菜单项,即可出现New 对话框,如图1-1 所示。
在弹出窗口中的Files 标签页下,选择C++ Sour ce File。
在选项卡右面的File 编辑框里输入文件名如“Exa.c”,在 Location 编辑框里输入文件路径,2如 : \test”。
点击 OK 按钮。
将出现编辑窗口 ,如图 1-2 所示。
在图 1-2 所示的右端编辑窗口里输 入以下 C 源程序并保存文件。
图 1-2 编辑窗口②编译编译是使用系统提供的编译器将文本文件 Exa.c 生成机器语言的过程 ,结果为 Exa.obj ,由于没有 得到系统分配的绝对地址,还不能直接运行,如图 1-3 所示。
计算机二级C语言上机试题库和答案解析(100套)
完美WORD格式计算机二级 c 语言上机题库及答案内部资料,切勿外传!.第 1 套填空题请补充 FUN 函数,FUN 函数的功能是求 10 的阶乘。
注意:部分源程序给出如下。
请勿改动主函数 main 和其他函数中的任何内容,仅在 fun 函数的横线上填入所编写的若干表达式或语句。
试题程序:#include<stdio.h>longfun(int n){if ( 1 )return (n*fun( 2));return 3;}main(){printf("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(intn);{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 between2and 10000:");scanf("%d", &k);printf("\n\nThe prime factor(s) of %dis(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 所指的数组中。
C语言上机题参考答案
20、设有1<=n<=500个人围坐一圈并按顺时针方向从1到n编号,从第s个人开始进
行1到m的报数,报数到第m个人,此人出圈,再从他的下一个人重新开始1到m的
报数,如此进行下去直到所有的人都出圈为止。
要求按出圈次序输出编号。
输入格式如下:
n s m
示例:
输入:
6 1 3
输出:
3 6 4 2 5 1
scanf("%d",&n);
for(i=1;i<=n;i++)
{for(j=1;j<=i;j++)
printf("*");
printf("\n");
}
}
8、编程输出n行图形(n值通过键盘输入),
假设n=5,则图形如下:
*
**
***
****
*****
假设n=6,则图形如下:
*
**
***
****
*****
if(x>1) y=6*x+5;
printf("%d",y);
}
三、循环图形
7、编程输出n行图形(n值通过键盘输入)
假设n=5,则图形如下:
*
**
***
****
*****
假设n=6,则图形如下:
*
**
***
****
*****
******
#include<stdio.h>
void main()
{int i,j,n;
printf("%.2f\n",(a+b+c)/3.0);
C语言考试题库及答案
C语言理论上机考试选择题部分(共200题)1、下面程序的输出是___D______#include<stdio.h>voidmain(){intk=11;printf("k=%d,k=%o,k=%x\n",k,k,k);}A)k=11,k=12,k=11B)k=11,k=13,k=13C)k=11,k=013,k=0xbD)k=11,k=13,k=b2、在下列选项中,不正确的赋值语句是__D______.A)++t;B)n1=(n2=(n3=0));C)k=i=j;D)a=b+c=1;3、下面合法的C语言字符常量是______A____.A)'\t'B)"A"C)65D)A4、表达式:10!=9的值是________D____.A)trueB)非零值C)0D)15、C语言提供的合法的数据类型关键字是_____B____.A)DoubleB)shortC)integerD)Char6、字符(char)型数据在微机内存中的存储形式是__D__.A)反码B)补码C)EBCDIC码D)ASCII码7、C语言程序的基本单位是_____C______.A)程序行B)语句C)函数D)字符8、设inta=12,则执行完语句a+=a-=a*a后,a的值是____D____A)552B)264 C)144D)-2649、执行下面程序中的输出语句后,输出结果是____B__.#include<stdio.h>voidmain(){inta;printf("%d\n",(a=3*5,a*4,a+5));}A)65B)20 C)15D)1010、下面程序的输出是____B______.#include<stdio.h>voidmain(){intx=023;printf("%d\n",--x);}A)17B)18 C)23D)2411、下面程序的输出的是_____C____.#include<stdio.h>voidmain(){intx=10,y=3;printf("%d\n",y=x/y);}A)0B)1 C)3D)不确定的值12、已知字母A的ASCII码为十进制的65,下面程序的输出是______A_____.#include<stdio.h>voidmain(){charch1,ch2;ch1='A'+'5'-'3';ch2='A'+'6'-'3';printf("%d,%c\n",ch1,ch2);}A)67,DB)B,CC)C,DD)不确定的值13、若要求在if后一对圆括号中表示a不等于0的关系,则能正确表示这一关系的表达式为____D__.A)a<>0B)!aC)a=0D)a14、以下程序的输出结果是____D_____.#include<stdio.h>voidmain(){intx=10,y=10;printf("%d%d\n",x--,--y);}A)1010B)99 C)910D)10915、设有如下定义:intx=10,y=3,z;则语句printf("%d\n",z=(x%y,x/y));的输出结果是_____D_____.A)1B)0 C)4D)316、为表示关系x≥y≥z,应使用C语言表达式___A___.A)(x>=y)&&(y>=z)B)(x>=y)AND(y>=z)C)(x>=y>=z)D)(x>=y)&(y>=z)17、C语言中非空的基本数据类型包括____B____.A)整型,实型,逻辑型B)整型,实型,字符型C)整型,字符型,逻辑型D)整型,实型,逻辑型,字符型18、若x和y都是int型变量,x=100,y=200,且有下面的程序片段:printf("%d",(x,y));上面程序片段的输出结果是____A___.A)200B)100C)100200D)输出格式符不够,输出不确定的值19、阅读下面的程序#include<stdio.h>voidmain(){charch;scanf("%3c",&ch);printf("%c",ch);}如果从键盘上输入abc<回车>则程序的运行结果是__A_____.A)aB)bC)cD)程序语法出错20、阅读下面的程序#include<stdio.h>voidmain(){inti,j;i=010;j=9;printf("%d,%d",i-j,i+j);}则程序的运行结果是____D____.A)1,19B)-1,19 C)1,17D)-1,1721、阅读下面的程序#include<stdio.h>voidmain(){inti,j,m,n;i=8;j=10;m=++i;n=j++;printf("%d,%d,%d,%d",i,j,m,n);}程序的运行结果是______C____.A)8,10,8,10B)9,11,8,10C)9,11,9,10D)9,10,9,1122、已知a=12,则表达式a+=a-=a*=a的结果是_____A__.A)0B)144 C)12D)-26423、若已定义inta,则表达式a=10,a+10,a++的值是__B_.A)20B)10 C)21D)1124、阅读下面的程序#include<stdio.h>voidmain(){inti,j;scanf("%3d%2d",&i,&j);printf("i=%d,j=%d\n",i,j);}如果从键盘上输入1234567<回车>,则程序的运行结果是____D____.A)i=123,j=4567B)i=1234,j=567C)i=1,j=2D)i=123,j=4525、下面程序的输出结果是____D____.#include<stdio.h>voidmain(){inta=-1,b=4,k;k=(++a<=0)&&(b--<=0);printf("%d,%d,%d\n",k,a,b);}A)1,1,2B)1,0,3 C)0,1,2D)0,0,326、下面程序的输出结果是____A____.#include<stdio.h>voidmain(){inta=5,b=3;floatx=3.14,y=6.5;printf("%d,%d\n",a+b!=a-b,x<=(y-=6.1));}A)1,0B)0,1 C)1,1D)0,027、执行下面程序段后,输出结果是____A____.inta;intb=65536;a=b;printf("%d\n",a);A)65536B)0 C)-1D)128、若有以下定义和语句:inta=010,b=0x10,c=10;printf("%d,%d,%d\n",a,b,c);则输出结果是____B_____.A)10,10,10B)8,16,10 C)8,10,10D)8,8,1029、已知有double型变量x=2.5,y=4.7,整型变量a=7,则表达式x+a%3*(int)(x+y)%2/4的值是_____B____.A)2.4B)2.5 C)2.75D)030、若已定义x和y是整型变量,x=2;,则表达式y=2.75+x/2的值是____C____.A)5.5B)5 C)3D)4.031、以下程序的输出结果是____D____.#include<stdio.h>voidmain(){inta=12,b=12;printf("%d,%d\n",--a,++b);}A)10,10B)12,12 C)11,10D)11,1332、设有以下语句:intx=10;x+=3+x%(3),则x的值是.____A_____A)14B)15 C)11D)1233、若d为double型变量,则表达式d=1,d+5,d++的值是_____D__.A)1B)6.0 C)2.0D)1.034、表达式5!=3的值是____D____.A)TB)非零值C)0D)135、若有定义inta=12,n=5,则表达式a%=(n%2)运算后,a 的值______A____.A)0B)1 C)12D)636、若有定义intx=3,y=2和floata=2.5,b=3.5,则表达式:(x+y)%2+(int)a/(int)b的值是__D__.A)0B)2 C)1.5D)137、在C语言中,以下叙述不正确的是_____A____.A)在C程序中,无论是整数还是实数,都能被准确无误的表示B)在C程序中,变量名代表存储器中的一个位置C)静态变量的生存期与整个程序的生存期相同D)C语言中变量必须先定义后引用38、C语言中的变量名只能由字母,数字和下划线三种字符组成,且第一个字符____C____.A)必须为字母B)必须为下划线C)必须为字母或下划线D)可以是字母,数字或下划线中的任意一种39、设有说明:charw;intx;floaty;doublez;则表达式:w*x+z-y值的数据类型是___D____.A)floatB)charC)intD)double40、一个C语言的执行是从_____A______.A)本程序的主函数开始,到本程序的主函数结束B)本程序的第一个函数开始,到本程序的最后一个函数结束C)本程序的主函数开始,到本程序的最后一个函数结束D)本程序的第一个函数开始,到本程序的主函数结束41、设a为整型变量,不能正确表达数学关系10<a<15的C语言表达式是____A____.A)10<a<15B)a==11||a==12||a==13||a==14C)a>10&&a<15D)!(a<=10)&&!(a>=15)42、下列程序执行后的输出结果是_____C____.#include<stdio.h>voidmain(){inta=5,b=60,c;if(a<b){c=a*b;printf("%d*%d=%d\n",b,a,c);}else{c=b/a;printf("%d/%d=%d\n",b,a,c);}}A)60/5=12B)300 C)60*5=300D)12 43、如果c为字符型变量,判断c是否为空格不能使用____A____.(假设已知空格ASCII码为32)A)if(c=='32')B)if(c==32)C)if(c=='\40')D)if(c=='')44、运行下面程序时,若从键盘输入"3,5<CR>",则程序的输出结果是____D____.#include<stdio.h>voidmain(){intx,y;scanf("%d,%d",&x,&y);if(x==y)printf("x==y");elseif(x>y)printf("x>y");elseprintf("x<y");}A)3<5B)5>3 C)x>yD)x<y45、运行下面程序时,若从键盘输入数据为"6,5,7<CR>",则输出结果是____C___.#include<stdio.h>voidmain(){inta,b,c;scanf("%d,%d,%d",&a,&b,&c);if(a>b)if(a>c)printf("%d\n",a);elseprintf("%d\n",c);elseif(b>c)printf("%d\n",b);elseprintf("%d\n",c);}A)5B)6 C)7D)不定值46、执行下面程序时,若从键盘输入"2<CR>",则程序的运行结果是____A____.#include<stdio.h>voidmain(){intk;charcp;cp=getchar();if(cp>='0'&&cp<='9')k=cp-'0';elseif(cp>='a'&&cp<='f')k=cp-'a'+10;elsek=cp-'A'+10;printf("%d\n",k);}A)2B)4 C)1D)1047、运行下面程序时,从键盘输入"2.0<CR>",则输出结果是___B_____.#include<stdio.h>voidmain(){floata,b;scanf("%f",&a);if(a<0.0)b=0.0;elseif((a<0.5)&&(a!=2.0))b=1.0/(a+2.0);elseif(a<10.0)b=1.0/2;elseb=10.0;printf("%f\n",b);}A)0.000000B)0.500000C)1.000000D)0.25000048、执行下面程序后,运行结果是____A____.#include<stdio.h>voidmain(){intx=41,y=1;if(x%3==0&&x%7==0){y+=x;printf("y=%d\n",y);}else{y=x;printf("y=%d",y);}}A)y=41B)y=43 C)y=42D)y=149、运行下面程序时,从键盘输入"12,34,9<CR>",则输出结果是___A___.#include<stdio.h>voidmain(){intx,y,z;scanf("%d,%d,%d",&x,&y,&z);if(x<y)if(y<z)printf("%d\n",z);elseprintf("%d\n",y);elseif(x<z)printf("%d\n",z);elseprintf("%d\n",x);}A)34B)12 C)9D)不确定的值50、运行下面程序时,从键盘输入字母H,则输出结果是_____C___.#include<stdio.h>voidmain(){charch;ch=getchar();switch(ch){case'H':printf("Hello!\n");case'G':printf("Goodmorning!\n");default:printf("Bye_Bye!\n"); }}A)Hello!B)Hello!GoodMorning!C)Hello!D)Hello!Good morning!Bye_Bye!Bye_Bye!51、执行下列程序段后的输出结果是_____A____. intx=1,y=1,z=1;x+=y+=z;printf("%d\n",x<y?y:x);A)3B)2 C)1D)452、设ch是char型变量,值为'A',则表达式ch=(ch>='A'&&ch<='Z')?ch+32:ch的值是__B___.A)ZB)aC)zD)A53、下面程序的输出结果是____C____.#include<stdio.h>voidmain(){intx=8,y=-7,z=9;if(x<y)if(y<0)z=0;elsez-=1;printf("%d\n",z);}A)8B)1 C)9D)054、运行下面程序时,若从键盘输入"5<CR>",则程序的输出结果是_____B___.#include<stdio.h>voidmain(){inta;scanf("%d",&a);if(a++>5)printf("%d\n",a);elseprintf("%d\n",a--);}A)7B)6 C)5D)455、运行下面程序时,若从键盘输入"3,4<CR>",则程序的输出结果是____B___.#include<stdio.h>voidmain(){inta,b,s;scanf("%d,%d",&a,&b);s=a;if(s<b)s=b;s=s*s;printf("%d\n",s);}A)14B)16 C)18D)2056、下列程序的执行结果是_____D____.#include<stdio.h>voidmain(){intx=0,y=1,z=0;if(x=z=y)x=3;printf("%d,%d\n",x,z);}A)3,0B)0,0 C)0,1D)3,157、假定等级和分数有以下对应关系:等级:A分数:85~100等级:B分数:60~84等级:C分数:60以下对于等级grade输出相应的分数区间,能够完成该功能的程序段是____D____.A)switch(grade){case'A':printf("85--100\n");case'B':printf("60--84\n");case'C':printf("60以下\n");default:printf("等级错误!\n");}B)switch(grade){case'A':printf("85--100\n");break;case'B':printf("60--84\n");case'C':printf("60以下\n");default:printf("等级错误!\n");}C)switch(grade){case'A':printf("85--100\n");break;case'B':printf("60--84\n");break;case'C':printf("60以下\n");default:printf("等级错误!\n");}D)switch(grade){case'A':printf("85--100\n");break;case'B':printf("60--84\n");break;case'C':printf("60以下\n");break;default:printf("等级错误!\n");}58、能够完成如下函数计算的程序段是__B____.┌-1x<0y=┤0x=0└1x>0A)y=1;B)if(x>=0)if(x!=0)if(x>0)y=1;if(x>0)y=1;elsey=0;elsey=0;elsey=-1; C)y=0;D)y=-1;if(x>=0)if(x>0)y=1;if(x>0)y=1;elsey=0;elsey=-1;59、有如下程序#include<stdio.h>voidmain(){floatx=5.0,y;if(x<0.0)y=0.0;elseif(x<10.0)y=1.0/x;elsey=1.0;printf("%f\n",y);}该程序的输出结果是____C_____.A)0.000000B)0.50000C)0.200000D)1.00000060、以下程序的执行结果是___B_____. #include<stdio.h>voidmain(){intx=1,y=0;switch(x){case1:switch(y){case0:printf("first\n");break;case1:printf("second\n");break;}case2:printf("third\n");}}A)firstB)firstsecondthirdC)firstD)secondthird61、以下程序的执行结果是____A____. #include<stdio.h>voidmain(){inta,b,c,d,x;a=c=0;b=1;d=20;if(a)d=d-10;elseif(!b)if(!c)x=15;elsex=25;printf("d=%d\n",d);}A)d=20B)d=10 C)d=15D)2562、有如下程序:#include<stdio.h>voidmain(){inta=2,b=-1,c=2;if(a<b)if(b<0)c=0;elsec++;printf("%d\n",c);}该程序的输出结果是___C_____.A)0B)1 C)2D)363、下列程序执行后的输出结果是____B____.#include<stdio.h>voidmain(){intx,y=1,z;if((z=y)<0)x=4;elseif(y==0)x=5;elsex=6;printf("%d,%d\n",x,y);}A)4,1B)6,1 C)5,0D)出错信息64、有如下程序#include<stdio.h>voidmain(){intx=1,a=0,b=0;switch(x){case0:b++;case1:a++;case2:a++;b++;}printf("a=%d,b=%d\n",a,b);}该程序的输出结果是______A____.A)a=2,b=1B)a=1,b=1 C)a=1,b=0D)a=2,b=265、下面程序的输出结果是____C_____.#include<stdio.h>voidmain(){inta=-1,b=1,k;if((++a<0)&&(b--<=0))printf("%d%d\n",a,b);elseprintf("%d%d\n",b,a);}A)-11B)01 C)10D)0066、假定w、x、y、z、m均为int型变量,有如下程序段:w=1;x=2;y=3;z=4;m=(w<x)?w:x;m=(m<y)?m:y;m=(m<z)?m:z; 则该程序段执行后,m的值是____D_____.A)4B)3 C)2D)167、以下程序的输出结果是___D______.main(){inta=100;if(a>100)printf("%d\n",a>100);elseprintf("%d\n",a<=100);}A)a<=100B)100 C)0D)168、若执行下面的程序从键盘上输入9,则输出结果是.______B________#include<stdio.h>voidmain(){intn;scanf("%d",&n);if(n++<10)printf("%d\n",n);elseprintf("%d\n",n--);}A)11B)10 C)9D)869、以下程序输出结果是_____D_____.#include<stdio.h>voidmain(){intm=4;if(++m>5)printf("%d\n",m--);elseprintf("%d\n",--m);}A)7B)6 C)5D)470、若执行下面的程序从键盘上输入5,则输出结果是. #include<stdio.h>voidmain(){intx;scanf("%d",&x);if(x++>5)printf("%d\n",x);elseprintf("%d\n",x--);}A)7B)6 C)5D)471、以下程序段运行结果是____A____.intx=1,y=1,z=-1;x+=y+=z;printf("%d\n",x<y?y:x);A)1B)2 C)4D)不确定的值72、有以下程序#include<stdio.h>voidmain(){inta,b,c=246;a=c/100%9;b=(-1)&&(-1);printf("%d,%d\n",a,b);}输出结果是____A____.A)2,1B)3,2 C)4,3D)2,-173、运行下面程序时,若从键盘输入数据为"123",则输出结果是___C____.#include"stdio.h"voidmain(){intnum,i,j,k,place;scanf("%d",&num);if(num>99)place=3;elseif(num>9)place=2;elseplace=1;i=num/100;j=(num-i*100)/10;k=(num-i*100-j*10);switch(place){case3:printf("%d%d%d\n",k,j,i);break;case2:printf("%d%d\n",k,j);break;case1:printf("%d\n",k);}}A)123B)1,2,3 C)321D)3,2,174、执行下列程序后的输出结果是___D____.#include<stdio.h>voidmain(){intk=4,a=3,b=2,c=1;printf("%d\n",k<a?k:c<b?c:a);}A)4B)3 C)2D)175、以下条件表达式中能完全等价于条件表达式x的是____B___.A)(x==0)B)(x!=0)C)(x==1)D)(x!=1)76、若运行下面程序时,给变量a输入15,则输出结果是___A___.#include<stdio.h>voidmain(){inta,b;scanf("%d",&a);b=a>15?a+10:a-10;printf("%d\n",b);}A)5B)25 C)15D)1077、运行下面程序后,输出是___D___.#include<stdio.h>voidmain(){intk=-3;if(k<=0)printf("****\n");elseprintf("####\n")}A)####B)****C)####****D)有语法错误不能通过编译78、执行下面程序的输出结果是____C____.#include<stdio.h>voidmain(){inta=5,b=0,c=0;if(a=a+b)printf("****\n");elseprintf("####\n");}A)有语法错误不能编译B)能通过编译,但不能通过连接C)输出****D)输出####79、为了避免嵌套的if-else语句的二义性,C语言规定else总是与___C___组成配对关系.A)缩排位置相同的ifB)在其之前未配对的ifC)在其之前尚未配对的最近的ifD)同一行上的if80、设x、y、z、t均为int型变量,则执行以下语句后,t 的值为____C_____.x=y=z=1;t=++x||++y&&++z;A)不定值B)4 C)1D)081、以下程序段____C______.x=-1;do{x=x*x;}while(!x);A)是死循环B)循环执行两次C)循环执行一次D)有语法错误82、对下面程序段描述正确的是___B____.intx=0,s=0;while(!x!=0)s+=++x;printf("%d",s);A)运行程序段后输出0B)运行程序段后输出1C)程序段中的控制表达式是非法的D)程序段循环无数次83、下面程序段的输出结果是____C____.x=3;do{y=x--;if(!y){printf("*");continue;}printf("#");}while(x=2);A)##B)##*C)死循环D)输出错误信息84、下面程序的运行结果是____B____.#include<stdio.h>voidmain(){inta=1,b=10;do{b-=a;a++;}while(b--<0);printf("%d,%d\n",a,b);}A)3,11B)2,8 C)1,-1D)4,985、下面程序段的运行结果是____B______.intn=0;while(n++<=2)printf("%d",n);A)012B)123 C)234D)错误信息86、下面程序段的运行结果是___D_____.intx=0,y=0;while(x<15)y++,x+=++y;printf("%d,%d",y,x);A)20,7B)6,12 C)20,8D)8,2087、下面程序的运行结果是___B_____.#include<stdio.h>voidmain(){ints=0,i=1;while(s<=10){s=s+i*i;i++;}printf("%d",--i);}A)4B)3 C)5D)688、函数pi的功能是根据以下近似公式求π值:____C______(π*π)/6=1+1/(2*2)+1/(3*3)+..+1/(n*n)请填空,完成求π的功能。
C语言上机150道题
C语言上机150道题及参考答案1.某一门课程考试之后,需要统计考生(10人)的平均成绩,并找出其中的最高分和最低分。
2.从键盘输入两个正整数,输出这两个整数的商,要求商的小数点后保留5位。
例如输入355和113,输出3.14159。
3.用while循环结构编写程序打印ASCII码为33-127的字符。
4.用do-while,for循环结构编写程序打印ASCII码为33-127的字符。
5.用for循环结构编写程序打印ASCII码为33-127字符。
6.在1-500中,找出能同时满足用3除余2,用5除余3,用7除余4的所有整数,用循环结构。
7.输入一个整数将其倒着输出,如54321——12345。
8.计算s=1+1/3+1/5+…+1/n,截止到1/n<10-4。
9.从键盘输入一整数n,计算1*1+2*2+...+n*n的值。
10.用while 循环计算1+2+……+100的和。
11.用do while循环计算1+2+……+100的和。
12.用for 循环计算1+2+……+100的和。
13.输入一个小于等于10的整数n ,计算n!。
14.输入两个正整数m和n,计算m!+n!,m和n的值均小于10。
15.用循环语句,计算1~100之间的所有3的倍数之和。
16.用循环语句,计算100-200之间的所有7的倍数之和。
17.输出1-100之间,7的整数倍数或数字尾数为7的数字,统计出这些数字个数。
18.输入一行字符,分别统计出其中英文字母,空格,数字和其他字符的个数。
19.输入一个整数,统计它有几位数。
如输入367,则该数有3位数。
20.编写程序,输出1到50中间所有能被3整除的正整数。
21.把100~200之间不能被3整除的输出。
22.编程Y=1+3+5+7+...111。
23.编程y=1*1/2*1/3*1/4*1/5*1/6*...前十项之积。
24.编程输出九九乘法表。
25.求1到100奇数和。
C语言--数组上机及答案
程序一:传值void swap(int a,int b){ int t;t=a; a=b; b=t;}main(){ int x=10,y=20;printf(“%d,%d\n”,x,y);swap(x,y);printf(“%d,%d\n”,x,y);}程序二:传地址void swap(int *a,int *b){ int t;t=*a; *a=*b; *b=t;}main(){ int x=10,y=20;printf(“%d,%d\n”,x,y);swap(&x,&y);printf(“%d,%d\n”,x,y);}上机练习1:现在一个数组存放10个整型数据(可以有相同),要求用户输入一个数,然后把数组中与其输入相同的数删除。
然后输出结果。
上机练习2:数组中有10个数,要求对数组进行排序,输出结果。
上机练习3:有10个学生的成绩存在数组中,请统计大于等于平均成绩的人数。
上机练习4:有10个学生的成绩存在数组中,请统计最高分,最低分,并将最高分和最低分学生的下标输出到屏幕上。
上机练习5:求a[M][N]数组四周的和。
#include <stdio.h>#define M 4#define N 5main( ){ int a[M][N]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20};…….}程序一:传值void swap(int a,int b){ int t;t=a; a=b; b=t;}main(){ int x=10,y=20;printf(“%d,%d\n”,x,y);swap(x,y);printf(“%d,%d\n”,x,y);}程序二:传地址void swap(int *a,int *b){ int t;t=*a; *a=*b; *b=t;}main(){ int x=10,y=20;printf(“%d,%d\n”,x,y);swap(&x,&y);printf(“%d,%d\n”,x,y);}上机练习1:现在一个数组存放10个整型数据(可以有相同),要求用户输入一个数,然后把数组中与其输入相同的数删除。
C语言上机作业试题5套含答案
第一次上机作业(2021):要求:独立完成,上机调试通事后上交作业提交邮件主题命名:班级学号姓名(第1次作业),例如:电1301班2王鹏(第1次作业)以附件形式将每次作业的所有程序源程序紧缩打包后提交,紧缩文件命名格式同上。
程序必需采用缩进格式1.大写字母转换成小写字母从键盘输入一个大写英文字母,输出相应的小写字母。
例:输入G输出g2.求平方根输入一个实数x,计算并输出其平方根(保留1 位小数)。
例:输入17输出The square root of is3.温度转换设计一个程序将华氏温度转换成摄氏温度c = 5/9(f-32)a)输入华氏温度(实型)b)输出的摄氏温度结果保留两位小数例:Please input Fahrenheit temperature:The corresponding Celsius temperature is4. 计算旅途时刻输入二个整数time1 和time2,表示火车的起身时刻和抵达时刻,计算并输出旅途时刻。
(输入的有效的时刻范围是0000 到2359,不需要考虑起身时刻晚于抵达时刻的情形。
)例:输入712 1411 (起身时刻是7:12,抵达时刻是14:11)输出The train journey time is 6 hours 59 minutes.5. 数字加密输入一个四位数,将其加密后输出。
方式是将该数每一名上的数字加9,然后除以10 取余,做为该位上的新数字,最后将第1 位和第3 位上的数字互换,第2 位和第4 位上的数字互换,组成加密后的新数。
例:输入1257输出The encrypted number is 4601试探题:你可否编程找出谁做的好事?有四位同窗中的一名做了好事,不留名,夸奖信来了以后,校长问这四位是谁做的好事。
⏹A说:不是我。
⏹B说:是C。
⏹C说:是D。
⏹D说:他乱说。
已知三个人说的是实话,一个人说的是谎话。
此刻要依照这些信息,找出做了好事的人。
《C语言》上机实验题及参考答案
《C语言》上机实验题及参考答案作者名:不详来源:网友提供05年7月21日1、编程实现对键盘输入的英文名句子进行加密。
用加密方法为,当内容为英文字母时其在26字母中的其后三个字母代替该字母,若为其它字符时不变:2、编程实现将任意的十进制整数转换成R进制数(R在2-16之间)。
3、从键盘输入一指定金额(以元为单位,如345.78),然后显示支付该金额的各种面额人民币数量,要求显示100元、50元、10元、5元、2元、1元、1角、5分、1分各多少张。
4、随机产生20个[10,50]的正整数存放到数组中,并求数组中的所有元素最大值、最小值、平均值及各元素之和。
5、编程在一个已知的字符串中查找最长单词,假定字符串中只含字母和空格,空格用来分隔不同单词。
6、模拟n个人参加选举的过程,并输出选举结果:假设候选人有四人,分别用A、B、C、D表示,当选某候选人时直接输入其编号(编号由计算机随机产生),若输入的不是A、B、C、D则视为无效票,选举结束后按得票数从高到低输出候选人编号和所得票数。
7、任何一个自然数m的立方均可写成m个连续奇数之和。
例如:1^3=12^3=3+53^3=7+9+114^3=13+15+17+19编程实现:输入一自然数n,求组成n3的n个连续奇数。
8、已知abc+cba=1333,其中a,b,c均为一位数,编程求出满足条件的a,b,c所有组合。
9、编制一个完成两个数的四则运算程序。
如:用户输入34+56则输出结果90.00。
要求运算结果保留两位小数,用户输入时一次将两个数和操作符输入。
10、输入一个五位以内的正整数,(1)判断它是一个几位数;(2)请按序输出其各位数字;(3)逆序输出其各位数字。
如输入:56439,输出:5位数5,6,4,3,99,3,4,6,511、编写子函数:(1)用冒泡法将一个数组排成升序的函数---SUB1;(2)在升序数组中插入一个数,并且保持该数组仍为升序数组的函数---SUB2。
C语言上机考试3
一、单项选择1.题号:4889以下函数挪用语句中,实参的个数是(). exce((v1,v2),(v3,v4,v5),v6);A、3B、4C、5D、6A、能够在同一个函数中,显现多次B、在主函数和其他函数中,都可显现C、必需在每一个函数中,显现D、只能在除主函数之外的函数中,显现一次A、该数组的首地址B、该数组的元素个数C、该数组中各元素的值D、该数组的长度答案:A2.题号:4525在C语言的函数中,以下正确的说法是().A、数组名不能作形参B、能够有也能够没有形参C、形参必需是变量名D、必需有形参答案:B3.题号:4083以下正确的函数概念形式是().A、double fun(int x,int y)B、double fun(int x;int y)A、main()B、#include""C、scanfD、printf答案:A4.题号:4048下面对函数的表达,正确的选项是().A、函数中不论是不是有return语句,都能返回正确值B、函数中没有return语句,说明不带回值C、函数不能嵌套概念D、函数的返回值是通过return语句取得的答案:C5.题号:4073在挪用函数时,假设是实参是简单变量,它与对应形参之间的数据传递方式是().A、传递方式由用户指定B、由实参传给形参,再由形参传回实参C、地址传递D、单向值传递答案:D6.题号:5119以下关于函数的表达中正确的选项是().A、每一个函数都能够单独运行A、5B、3C、2D、4答案:C7.题号:4901在C语言中,形参的缺省存储类是().A、staticB、registerC、autoD、extern答案:C8.题号:4507C语言规定,在一个源程序中,main()函数的位置.A、必需在最开始B、必需在系统挪用的库函数的后面C、能够任意D、必需在最后答案:C9.题号:4847以下表达中,正确的选项是().A、main()可作为用户标识符,用以命名任意一个函数作为主函数B、C语言程序将从源程序中,第一个函数开始执行C、能够在程序中,由用户指定任意一个函数作为主函数,程序将从此开始执行D、C语言规定必需用main()作为主函数名,程序将从此开始执行,在此终止答案:D10.题号:5137以下函数的类型是fff(float x){printf("%d\n",x);}A、能够在任意位置B、必需在程序的最后C、必需在程序的开始D、必需在系统挪用的库函数以后答案:A11.题号:4112C语言规定,函数返回值的类型是().A、由return语句中的表达式类型所决定B、由挪用该函数时的主调函数类型所决定C、由挪用该函数时系统临时决定D、由概念该函数时所指定的数值类型决定答案:D12.题号:4804以下所列的函数"首部"中,正确的选项是().()A、void play(int a,b)B、void play(int a,int b)C、void play(a:int,b:int)D、void play(a as int,b as int)答案:B13.题号:4432有以下函数概念:int fun(double a,double b){return a*b;}假设以下选项中,所用变量都已正确概念并赋值,错误的函数挪用是().A、z=fun(fun(x,y),fun(x,y));B、z=fun(fun(x,y)x,y);C、if(fun(x,y)){……}D、fun(x,y);答案:B14.题号:5050关于void 类型函数,调历时不可作为().A、if语句的成份语句B、表达式C、循环体里的语句D、自概念函数体中的语句A、必需在主调函数中,说明此数组的大小B、实参数组类型与形参数组类型能够不匹配C、实参数组名与形参数组名必需一致D、在被挪用函数中,不需要考虑形参数组的大小答案:A15.题号:4696在C语言中,挪用函数除函数名外,还必需有().A、实际参数B、()C、函数预说明D、函数返回值答案:B16.题号:4892以下错误的描述是:函数挪用能够().A、做为一个函数的实参B、做为一个函数的形参C、出此刻一个表达式中D、出此刻执行语句中A、数组每一个元素中的值B、数组的首地址C、数组的长度D、数组每一个元素的地址答案:B17.题号:5014假设用数组名作为函数的实参,传递给形参的是().A、数组的首地址B、数组元素的个数C、数组第一个元素的值D、数组中,全数元素的值答案:A18.题号:4843假设是在一个函数中的复合语句中,概念了一个变量,以下正确的说法是().A、该变量在本程序范围内均有效B、该变量只在该复合语句中,有效C、该变量在该函数中,有效D、该变量在主函数中,有效答案:B19.题号:4319C语言中,规定,程序中,各函数之间().A、既许诺直接递归挪用或许诺间接递归挪用B、许诺直接递归挪用不准诺间接递归挪用C、不准诺直接递归挪用许诺间接递归挪用D、不准诺直接递归挪用也不准诺间接递归挪用答案:A20.题号:5062凡是函数中,未指定存储类别的局部变量,其隐含的存储类别为().A、自动(auto)B、静态(static)C、外部(extern)D、寄放器(register)答案:A21.题号:4672以下表达中,正确的选项是().A、组成C程序的大体单位是函数B、main()函数必需放在其它函数之前C、所有被挪用的函数必然要在挪用之前进行概念D、能够在一个函数中,概念另一个函数答案:A22.题号:4236全局变量的概念不可能在().A、最后一行B、文件外面C、函数内部D、函数外面答案:C23.题号:4754以下对C语言函数的描述中正确的选项是().A、C程序中有挪用关系的所有函数必需放在同一个程序文件中B、C函数既能够嵌套概念又能够递归挪用A、staticB、autoC、无存储类别D、extern答案:B24.题号:4578假设已概念的函数有返回值,那么以下关于该函数挪用的表达中,错误的选项是().A、函数挪用能够作为一个函数的形参B、函数挪用能够作为独立的语句存在C、函数挪用能够作为一个函数的实参D、函数挪用能够出此刻表达式中,答案:A25.题号:4537以下正确的函数声明语句是().A、int add(int a,int b)A、1990B、1996C、2000D、1992答案:A26.题号:5040以下表达中,不正确的选项是().A、在一个函数内概念的变量只在本函数范围内有效B、在一个函数内的复合语句中,概念的变量在本函数范围内有效A、实参与形参是双向传递函数说明语句的三种形式:int max(int a,int b);答案:正确1.题号:4577静态局部变量是在编译时被初始化的,故它只被赋初值一次.答案:正确2.题号:4846gets 函数是用来输入一个字符的函数.答案:正确3.题号:4767函数调历时,实参和形参在类型上应按位置与形参一一对应匹配;假设是类型不匹配,通常编译器并非给出犯错信息.答案:正确4.题号:4984一个C程序只能由一个主函数组成答案:正确5.题号:4989C语言中return语句能够返回函数值.假设是return语句后表达式的值与函数说明的类型不一致,那么以return语句的表达式类型为准,系统将自行转换.答案:错误6.题号:4783通过return语句,函数能够带回一个或一个以上的返回值.答案:正确7.题号:4175在C语言中,不准诺函数嵌套概念,但函数能够嵌套挪用.答案:正确8.题号:4689return 语句能够在同一个函数中显现多次.答案:正确9.题号:4097每次挪用函数时,都要对静态局部变量从头进行初始化.答案:正确10.题号:4584函数调历时,要求实参与形参的个数必需一致,对应类型一致.答案:正确11.题号:4055C语言程序老是从main()函数开始执行.答案:正确12.题号:4161没有初始化的整型静态局部变量的初值系统均默以为0.答案:正确13.题号:4349在C语言的函数中,必需有形参.答案:错误14.题号:5108在C语言中,函数能够嵌套概念,但不能嵌套挪用.答案:错误二、填空题==================================================1.题号:4286在函数中,需要返回一个结果时,能够利用_____语句.答案:空1:return2.题号:4371函数的_____挪用是一个函数直接或间接地挪用它自身.答案:空1:递归3.题号:4333C语言中,格式输入操作是由库函数_____完成的,格式输出操作是由库函数_____完成的.答案:空1:scanf空2:printf4.题号:4373C源程序中的主函数的名称必需是_____。
c语言上机练习
第一次上机练习(首次)1.阅读以下程序,说出其功能和运算结果(输入5↙)。
#include <stdio.h>int main( ){int n ;int factorial(int n) ;scanf("%d",&n) ;printf("%d\n", factorial(n)) ;return 0 ;}int factorial(int n){int i, fact=1 ;for(i=1;i<=n;i++)fact=fact*i ;return fact ;}答案:120 求n的阶乘。
2.改正下列程序中的错误,在屏幕上显示“Welcome to You!”。
#include <stdio.h>int mian( ){printf("Welcome to You!\n")return 0 ;}答案:2行main4行末尾少分号3.编写程序在屏幕上显示以下内容:Programming is fun.And Programming in C is even more fun!答案:#include <stdio.h>int main( ){printf("Programming is fun.\nAnd Programming in C is even more fun!\n") ;return 0 ;}4.编写程序输出以下图案:* * * ** * ** **答案:#include <stdio.h>void main( ){printf("* * * *\n");printf(" * * *\n");printf(" * *\n");printf(" *\n");}5.编写程序,计算并在屏幕上显示10~20的平方值。
计算机二级C语言上机题库及答案(100套)
~计算机二级c 语言上机题库及答案内部资料,切勿外传!.第1 套填空题请补充FUN 函数,FUN 函数的功能是求10 的阶乘。
注意:部分源程序给出如下。
请勿改动主函数main 和其他函数中的任何内容,仅在fun 函数的横线上填入所编写的若干表达式或语句。
试题程序:#include <stdio.h>long fun(int n){if ( 1 )return (n*fun( 2 ));return 3 ;}main(){printf("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 2and 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 所指的数组中。
全国计算机等级考试二级C语言上机考试题库及答案
第1套一、填空给定函数的功能是调用fun 函数建立班级通讯录。
通讯录记录每位学生的编号,姓名和电话号码。
班级的人数和学生的信息从键盘读入,每个人的信息作为一个数据块写到名为答案yfile5.dat的二进制文件中。
答案:1. STYPE 2. FILE3. fp二、修改先将在字符串s中的字符按正序存放到t串中,然后把s 中的字符按逆序连接到t串后面。
答案:1. for(i = 0 ; i < sl ;i++) 2. t[2*sl] =` 0`; 三、程序将两个两位数的正整数a,答案合并成一个整数放在c中。
合并的方式是:将a数的十位和个位数依次放在c数的千位和十位上,答案数的十位和个位数依次放在c数的百位和个位上。
*c=(a/10)*1000+(b/10)*100+(a%10)*10+(b%10);第2套一、填空从键盘输入若干行文本(每行不超过80个字符),写到文件答案yfile4.txt中,用-1作为字符串输入结束的标记。
然后将文件的内容读出显示在屏幕上。
文件的读写分别有自定义函数ReadText 和WriteText实现。
答案:*fw str str 二、修改从低位开始取出长整形变量s中的奇数位上的数,依次构成一个新数放在t中,高位仍放在高位,低位仍放在低位。
答案:long *t sl =sl*10;三、程序将两个两位数的正整数a,答案合并成一个整数放在c中。
合并的方式:将a数的十位和个位数依次放在c数的千位和十位上,答案数的十位和个位数依次放在c数的百位和个位上。
*c=(b/10)*1000+(a%10)*100+(b%10)*10 +(a/10);第3套一、填空将自然数1~10以及它们的平方根写到名为答案yfile3txt的文本文档中,然后再顺序读出显示在屏幕上。
答案:(1)fp (2)fclose(fp)(3)fname二、修改将n个无序整数从小到大排序。
答案:for(i=j+1;i<n;i++)p=i;三、程序将两个两位数的正整数a,答案合并成一个整数放在c中。
c语言上机考试题及答案
c语言上机考试题及答案一、选择题(每题2分,共10分)1. 在C语言中,以下哪个是合法的整型常量?A. 0x12B. 0x12.0C. 0x12LD. 0x12.0L答案:A2. 下列哪个选项是正确的C语言标识符?A. 2variableB. variable2C. variable-2D. variable_2答案:D3. C语言中,以下哪个是正确的字符串字面量?A. "Hello, World"B. 'Hello, World'C. "Hello, World'D. 'Hello, World'答案:A4. 在C语言中,以下哪个是正确的函数声明?A. int myFunction(int a);B. int myFunction();C. int myFunction(int);D. int myFunction(int a, int b);答案:A5. 下列哪个选项是C语言中的逻辑运算符?A. &&B. ||C. !D. 以上都是答案:D二、填空题(每题3分,共15分)1. 在C语言中,用于定义整型变量的关键字是________。
答案:int2. 若有定义 int a = 10;,则表达式 a++ 的值为________。
答案:103. C语言中,用于表示逻辑“与”的运算符是________。
答案:&&4. 在C语言中,以下代码段的输出结果是________。
```c#include <stdio.h>int main() {int x = 5;printf("%d", x++);return 0;}```答案:55. 若有定义 float b = 3.14;,则表达式 b * 100 的值为________。
答案:314.0三、编程题(每题20分,共40分)1. 编写一个C程序,计算并输出以下数列的前10项之和:1 + 1/2 + 1/3 + ... + 1/10。
NCRE题库二级C语言
第1套上机操作题一、程序填空题【微答案】(1) 0 (2) i++或++i或i+=1或i=i+1 (3)2.0*i【微分析】填空1:循环变量1从开始参加运算,但是在每次循环的开始i都进行自加1操作,故i应赋初值为0。
填空2:循环变量i自增1运算。
填空3:根据公式确定表达式通项。
注意x为double类型,故应将i变为double类型再进行运算。
二、程序修改题【微答案】(1)void fun ( char *s , char *t )(2)t[2*d]='\0';或t[d+i]='\0';或t[2*d]=0;或t[d+i]=0;【微分析】(1)从调用函数来看,函数传递的是数组,所以函数的形参应为指针。
(2) 循环结束后回文字符的个数为2*d个,因为数组下标是从0开始的,所以最后一个字符的下标为2*d-1,在最后一个字符的后面加上结束符'\0',因此为t[2*d]='\0';。
三、程序设计题【微答案】void fun(char *s, char t[]){int i,j=0,n;n=strlen(s);for(i=0;i<n;i++)if(i%2!=0&&s[i]%2!=0){t[j]=s[i]; /*将下标为奇数同时ASCII码值为奇数的字符放入数组t中*/ j++;}t[j]='\0'; /*最后加上结束标识符*/}【微分析】本题要求除了下标为奇数同时ASCII码值也为奇数的字符之外,其余的所有字符都删除。
即要留下下标为奇数同时ASCII码值也为奇数的字符。
所以if的条件语句中应使用if(i%2!=0&&s[i]%2!=0)。
第2套上机操作题一、程序填空题【微答案】(1)t=i (2) i (3) '\0'或0【微分析】本题中第一个for循环的作用是得到字符串的长度,第二个for循环的作用是对下标为奇数的字符按ASCII码大小排序,最后将排好序的字符取出。
c语言上机试题库及答案
c语言上机试题库及答案1. 题目一:字符串翻转要求:编写一个C语言程序,实现字符串的翻转功能。
```c#include <stdio.h>#include <string.h>void reverseString(char *str) {int len = strlen(str);char temp;for(int i = 0; i < len / 2; i++) {temp = str[i];str[i] = str[len - i - 1];str[len - i - 1] = temp;}}int main() {char str[100];printf("Enter a string: ");scanf("%s", str);reverseString(str);printf("Reversed string: %s\n", str);return 0;}```2. 题目二:计算数组中的最大值要求:编写一个C语言程序,计算并输出一个整数数组中的最大值。
```c#include <stdio.h>int findMax(int arr[], int size) {int max = arr[0];for(int i = 1; i < size; i++) {if(arr[i] > max) {max = arr[i];}}return max;}int main() {int arr[] = {10, 45, 23, 67, 89, 34};int size = sizeof(arr) / sizeof(arr[0]);int max = findMax(arr, size);printf("The maximum value in the array is: %d\n", max); return 0;}```3. 题目三:实现二分查找要求:编写一个C语言程序,实现一个二分查找算法,查找一个有序数组中是否存在目标值。
c 上机试题及答案
c 上机试题及答案第一部分:多项选择题1. 下面哪个选项是正确的?a) Ab) Bc) Cd) D答案:d) D2. 在计算机科学中,什么是“算法”?a) 一种计算机语言b) 一种软件程序c) 一种解决问题的方法或步骤d) 一种计算机硬件答案:c) 一种解决问题的方法或步骤3. 下面哪个选项是关于二进制的描述?a) 使用0和1进行计算的系统b) 使用10个数字进行计算的系统c) 使用英文字母进行计算的系统d) 使用负数进行计算的系统答案:a) 使用0和1进行计算的系统第二部分:填空题1. 在C语言中,用于在屏幕上输出文本的函数是______。
答案:printf2. 在计算机领域中,RAM代表______。
答案:Random Access Memory(随机存取存储器)3. 当一个程序在运行时遇到错误并突然停止时,我们称之为______。
答案:运行时错误(Runtime Error)第三部分:编程题编写一个C程序,计算并输出1到100之间所有奇数的和。
```c#include <stdio.h>int main(void) {int sum = 0;for (int i = 1; i <= 100; i += 2) {sum += i;}printf("1到100之间所有奇数的和为:%d\n", sum);return 0;}```答案:1到100之间所有奇数的和为:2500第四部分:简答题1. 请简要解释什么是“数据类型”,并举例说明。
答:数据类型是一种用于定义变量或表达式的特性,包括数据的范围、内存大小和操作。
例如,在C语言中,int是一种数据类型,用于定义整数类型的变量,如:```cint age = 25;```2. 请简要介绍一下C语言的特点。
答:C语言是一种通用、高级的编程语言,具有以下特点:- 结构简洁:C语言的语法相对简单,易于学习和理解。
- 高效性:C语言可以生成高效的机器代码,执行速度快。
大一C语言上机实验试题及答案
大一C语言上机实验试题及答案一、选择题(每题2分,共10分)1. C语言中,用来定义变量的关键字是()。
A. varB. defineC. intD. let答案:C2. 下列哪个选项不是C语言中的运算符?A. %B. &&C. =D. :答案:D3. 在C语言中,用于定义一个函数的关键字是()。
A. functionB. defC. intD. void答案:A4. 下列哪个选项是正确的C语言数组定义?A. int arr[] = {1, 2, 3};B. int arr[3] = {1, 2, 3};C. int arr[3] = {1, 2};D. int arr = {1, 2, 3};答案:B5. C语言中,用于输出字符串的函数是()。
A. printfB. printC. coutD. printf_s答案:A二、填空题(每题3分,共15分)1. 在C语言中,用于声明一个整型变量的关键字是____。
答案:int2. 以下代码段的输出结果是____。
```c#include <stdio.h>int main() {int a = 10;printf("%d", a++);return 0;}```答案:103. 在C语言中,用于声明一个浮点型变量的关键字是____。
答案:float4. 若有以下代码段:```cint x = 5, y = 3;int result = x / y;```则变量result的值是____。
答案:15. 在C语言中,用于声明一个字符型变量的关键字是____。
答案:char三、编程题(每题10分,共20分)1. 编写一个C语言程序,实现输入两个整数,输出它们的和。
```c#include <stdio.h>int main() {int num1, num2, sum;printf("请输入两个整数:");scanf("%d %d", &num1, &num2);sum = num1 + num2;printf("它们的和是:%d\n", sum);return 0;}```2. 编写一个C语言程序,实现输入一个字符串,然后输出其反转后的字符串。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1选择题答案:1、D 2、D 3.D 4,A 5.B6.D7.C8.D9.C 10.A11.B 12.A 13.B 14.D 15.B16.B 17.C 18.A 19.A 20.C一、选择题(共20题,每题2分,共40分)1、有以下定义:int a[4][3]={1,2,3,4,5,6,7,8,9,10,11,12}int (*ptr)[3]=a,*p=a[0];则下列能够正确表示数组元素a[1][2]的表达式是()。
A)*((*ptr+1)[2])B)*(*(p+5))C)(*ptr+1)+2 D)*(*(a+1)+2)2、# includevoid main ( ){ int a[3][3]={1,2,3,4,5,6,7,8,9};int s=0,i;for (i=0;i<3;i++)s+=(*(a+i))[i];printf("%d",s);}A)9 B)12 C)14 D)153、设有说明语句:char a= '\123abc';则变量a ( )A) 包含7个字符B) 包含6个字符 C) 包含5个字符D) 包含4个字符4、有以下程序段int k=0while(k=1)k++;while 循环执行的次数是( )A) 无限次 B) 有语法错,不能执行 C) 一次也不执行 D) 执行1次5、在C语言中,()。
A)函数定义可以嵌套,但函数调用不能嵌套B)函数定义不可以嵌套,但函数调用可以嵌套C)函数定义和调用均不能嵌套D)函数定义和调用均可以嵌套6、以下叙述正确的是()A)do-while语句构成的循环不能用其它语句构成的循环代替。
B)do-while语句构成的循环只能用break语句退出。
C)用do-while语句构成的循环,在while后的表达式为非零时结束循环。
D)用do-while语句构成的循环,在while后的表达式为零时结束循环。
7、若有声明语句char ch=’a’,*pc=&ch;以下语句中,有语法错误的是。
A.(*pc)++B.ch+=-‘a’+’A’;C.toupper(ch)=ch;D.ch++;8、以下关于函数叙述中,正确的是。
A.在函数体中可以直接引用另一个函数中声明为static类别的局部变量的值B.在函数体中至少必须有一个return 语句C.在函数体中可以定义另一个函数D.在函数体中可以调用函数自身9、以下数组声明语句中正确的是。
A.int a,a[n];B.int a[ ];C. int a[2][3]={{1},{2},{3}};D.int a[ ][3]={{1},{2},{3}};10、以下程序执行后的结果是()A)9 B)程序出错 C)死机 D)15#include#define AREA(x,y) x*y;main(){int i;i=AREA(3+2,3)printf(“%d”,i);}11、以下程序的输出结果是( )main( ){int b[3][3]={0,1,2,0,1,2,0,1,2},i,j,t=1;for(i=0;i<3;i++)for(j=i;j<=i;j++)t=t+b[j][j]];printf("%d\n",t);}A)3 B)4 C)1 D)912、以下不能正确进行字符串赋初值的语句是()A)char str[5]= "good!";B)char str[ ]= "good!";C)char *str="good!";D)char str[5]={ 'g','o','o','d'};13、以下关于switch语句和break语句的描述中,只有()是正确的。
A)在switch语句中必须使用break语句B)在switch语句中,可以根据需要使用或不使用break语句C)break语句只能用于switch语句中D)break语句是switch语句的一部分14、判断变量ch中的字符是否为数字字符,最简单的正确表达式是()。
A)ch>=0&&ch<=9 B)’0’<=ch<=’9’C)ch>=’0’||ch<=’9’D)ch>=’0’&&ch<=’9’15、若执行以下程序时从键盘上输入9,则输出结果是()A)11 B)10 C)9 D)8main(){ int n;scanf("%d",&n);if(n++<10) printf("%d\n",n);else printf("%d\n",n--);}16、若w=1,x=2,y=3,z=4;则条件表达式w>x?w:y<Z?Y< SPAN>:z的结果是()A)4 B)3 C)2 D)117、设x、y、t均为int型变量,则执行语句:x=y=3;t=++x||++y;后y的值为()A)不定值B)4 C)3 D)118、以下程序的输出结果是()main( ){int x=023;printf("%d\n",--x);}A)18 B)22 C)23D)1919、下列4个函数中,()能实现交换变量值的功能。
A)void fun_a(int x,int y) B)void fun_b(int *x,int *y) { int *p; { int *p;*p=x;x=y;y=*p; *x=*y;*y=*x;} }C)void fun_c(int *x,int *y) D)void fun_d(int x,int y) { *x=*x+*y; { int p;*y=*x-*y; p=x;x=y;y=p;*x=*x-*y; }}20、以下所列的各函数首部中,正确的是( )A) void play(var :integer,var b:integer)B) void play(int a,b)C) void play(int a,int b)D) Sub play(a as integer,b as integer)20、以下所列的各函数首部中,正确的是( )A) void play(var :integer,var b:integer)B) void play(int a,b)C) void play(int a,int b)D) Sub play(a as integer,b as integer)二、填空题答案1. n%m==0; return 1;2、*max=I *min=I a,7,&max,&min3.rxfsu4.a=98,b=765.000000,c=4321.0000006.j<N; a[k]!=a[i]7.(r=a%b)!=0 b=r8. x[i][p]=x[i][j]; LineMax(x)二、填空题(每空2分,共26分)1、判断n是否是素数,若是,则返加1,否则返回0int prim(int n){ int m;for (m=2;m<=n/2;m++)ifreturn 0;;}2、下述程序段是要实现在数组中查找最大元素和最小元素的下标,# includevoid find(int *a,int n,int *max,int *min){ int i;*max=*min=0;for(i=1;i<N;I++)if(a[i]>a[*max]);elseif(a[i]<A[*MIN]);return;}void main( ){ int a [ ]={5,8,7,6,2,7,3};int max,min;find( );printf("\nmax=%d,min=%d",max,min);}3、下面的程序当输入为字符串”qwert?”时的输出结果是Main(){ char c;while((c=getchar())!=’?’) putchar(++c);}4、假设有如下语句:int a;float b,c;scanf("%2d%3d%4f",&a,&b,&c);printf("\na=%d,b=%f,c=%f\n",a,b,c);若从键盘输入:9876543210则输出应为:5、下面的函数用于实现将一个字符串按逆序存放。
Void convert(char s[]){ char m;int i,j;for (i=0,j=strlen(s);i< ;i++,j++){m=s[i];s[i]= ;s[j-1]=m;}printf(“%s\n”,s);}6、以下函数fun的功能是用选择排序法对数组的数据按从小到大的顺序排列。
void fun(int a[ ],int n){int i,j,k,temp;for(i=0;i<N-1< SPAN>;i++){ k=i;for(j=i+1;;j++)if(a[j]<A[K]) k=j;if( ){temp=a[k];a[k]=a[i];a[i]=temp; }}}7、函数fun,其功能是求两个整数的最大公约数fun(int x,int y){int a,b,t,r;a=x;b=y;while( ){a=b;}return (b);}8、以下程序中,主函数调用了LineMax函数,实现在N行M列的二维数组中,找出每一行上的最大值。
请填空。
#define N 3#define M 4void LineMax(int x[N][M]){ int i,j,p;for(i=0;i<N< SPAN>;i++){ p=0;for(j=1;j<M< SPAN>;j++)if(x[i][p]<X[I][J])< SPAN> ;printf("The max value in line %d is %d\n", i,x[i][p]);}}main(){ int x[N][M]={1,5,7,4,2,6,4,3,8,2,3,1};;}三、判断题(每题2,共20分)(对)1、C语言允许在复合语句内定义自动变量。
(错)2、全局变量可以和局部变量重名,且全局变量优先。
(对)3、若一个函数的返回类型为void,则表示其没有返回值。
(错)4、在程序运行过程中,系统分配给实参和形参的内存单元是相同的。