嘉院C语言上机试题17
- 格式:doc
- 大小:166.00 KB
- 文档页数:5
2017年全国计算机等级考试C语言上机考试题库学生练习用第一套至第二十套第一套:1、程序填空程序通过定义学生结构体变量,存储了学生的学号、姓名和三门课的成绩。
所有学生数据均以二进制方式输出到文件中。
函数fun的功能是重写形参filename 所指文件中最后一个学生的数据,即用新的学生数据覆盖该学生原来的数据,其他学生的数据不变。
请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。
注意:部分源程序在文件BLANK1.C中。
不得增行或删行,也不得更改程序的结构!-----------------------------------------------------------------------------------------------------------------#include <stdio.h>#define N 5typedef struct student {long sno;char name[10];float score[3];} STU;void fun(char *filename, STU n){ FILE *fp;/**********found**********/fp = fopen(__1__, "rb+");/**********found**********/fseek(__2__, -(long)sizeof(STU), SEEK_END);/**********found**********/fwrite(&n, sizeof(STU), 1, __3__);fclose(fp);}main(){ STU t[N]={ {10001,"MaChao", 91, 92, 77}, {10002,"CaoKai", 75, 60, 88},{10003,"LiSi", 85, 70, 78}, {10004,"FangFang", 90, 82, 87},{10005,"ZhangSan", 95, 80, 88}};STU n={10006,"ZhaoSi", 55, 70, 68}, ss[N];int i,j; FILE *fp;fp = fopen("student.dat", "wb");fwrite(t, sizeof(STU), N, fp);fclose(fp);fp = fopen("student.dat", "rb");fread(ss, sizeof(STU), N, fp);fclose(fp);printf("\nThe original data :\n\n");for (j=0; j<N; j++){ printf("\nNo: %ld Name: %-8s Scores: ",ss[j].sno, ss[j].name);for (i=0; i<3; i++) printf("%6.2f ", ss[j].score[i]);printf("\n");}fun("student.dat", n);printf("\nThe data after modifing :\n\n");fp = fopen("student.dat", "rb");fread(ss, sizeof(STU), N, fp);fclose(fp);for (j=0; j<N; j++){ printf("\nNo: %ld Name: %-8s Scores: ",ss[j].sno, ss[j].name);for (i=0; i<3; i++) printf("%6.2f ", ss[j].score[i]);printf("\n");}}-----------------------------------------------------------------------------------------------------------------【参考答案】(1)filename (2)fp (3)fp【解题思路】填空1:本空是对文本文件的打开,filename所指的文件中的最后数据要进行重写,因此首先是要打开,因而本空填写filename。
计算机语言C专升本精选样卷(总分100分,考试时长90分钟)一、单项选择题(每小题2 分,共 40分)1、以下叙述正确的是________。
A、可以把define和if定义为用户标识符B、可以把define定义为用户标识符,但不能把if定义为用户标识符C、可以把if定义为用户标识符,但不能把define定义为用户标识符D、define和if都不能定义为用户标识符2、有以下程序段#include<stdio.h>int a,b,c;a=10;b=50;c=30;if(a>b)a=b,b=c;c=a;printf("a=%d b=%d c=%d\n",a,b,c);程序的输出结果是______。
A、a=10 b=50 c=10B、a=10 b=50 c=30C、a=10 b=30 c=10D、a=50 b=30 c=503、设有说明:char c;int x;double z;则表达式c*x+z值的数据类型为____A、floatB、intC、charD、double4、以下程序的输出结果是________。
#include<stdio.h>main(){int a=1,b=3;if((++a<0)&&!(b--<=0)) printf("%d,%d\n",a,b);else printf("%d,%d\n",b,a);}A、2,2B、1,3C、3,2D、3,15、有如下程序#define N 4#define M N+2#define NUM 2*M+1main(){int i;for(i=1;i<=NUM;i++)printf("%d\n",i);}该程序中的for循环执行的次数是______。
A、14B、11C、10D、136、有以下程序:main(){int m=3,n=4,x;x;-m++;x=x+8/++n;printf("%d\n",x);}程序运行后的输出结果是________。
c语言试题及答案C语言作为一种广泛使用的编程语言,对于计算机科学和软件开发领域的学生而言,掌握C语言的基本知识是非常重要的。
为了帮助学生更好地了解和掌握C语言的相关知识,以下是一些C语言试题及答案。
通过这些试题和答案的学习,读者可以进一步巩固和扩展对C语言的理解。
第一节:基础知识及数据类型1. 请简要解释C语言的基本特点。
C语言的基本特点包括简洁、高效、灵活、可移植以及底层操作的能力。
它是一种结构化的程序设计语言,允许对内存和硬件进行低级别的控制。
2. 列举C语言中的基本数据类型。
C语言中的基本数据类型包括整数类型(int, short, long)、浮点数类型(float, double)、字符类型(char)以及指针类型(pointer)。
3. 下面的程序段输出的是什么?```c#include <stdio.h>int main() {int a = 5;float b = 3.2;char c = 'A';printf("%d\n", a);printf("%f\n", b);printf("%c\n", c);return 0;}```答案:53.200000A第二节:运算符和流程控制4. C语言中的逻辑运算符有哪些,分别是什么?C语言中的逻辑运算符包括与(&&)、或(||)以及非(!)。
5. 请问以下代码的输出结果是什么?```c#include <stdio.h>int main() {int a = 10, b = 20;if (a < 12 && b > 15) {printf("条件成立\n");} else {printf("条件不成立\n");}return 0;}```答案:条件成立6. 下列代码的输出结果是什么?```c#include <stdio.h>int main() {int i;for (i = 0; i <= 5; i++) {if (i % 2 == 0) {continue;}printf("%d ", i);}return 0;}```答案:1 3 5第三节:函数和数组7. C语言中的函数可以有几个返回值?如何实现多个返回值?C语言的函数只能有一个返回值。
2017年全国计算机等级考试C语言上机考试题库学生练习用第41套至第60套第四十一套1、程序填空以下给定程序中,函数fun的功能是:将形参s所指字符串中的所有字母字符顺序前移,其他字符顺序后移,处理后将新字符串的首地址作为函数值返回。
例如,假设s所指字符串为:"asd123fgh543df",处理后新字符串为:"asdfghdf123543"。
请在程序的下画线处填入正确的容并将下画线删除,使程序得出正确的结果。
注意:局部源程序在文件BLANK1.C中。
不得增行或删行,也不得更改程序的结构!-----------------------------------------------------------------------------------------------------------------#include <stdio.h>#include <stdlib.h>#include <string.h>char *fun(char *s){ int i, j, k, n; char *p, *t;n=strlen(s)+1;t=(char*)malloc(n*sizeof(char));p=(char*)malloc(n*sizeof(char));j=0; k=0;for(i=0; i<n; i++){ if(((s[i]>='a')&&(s[i]<='z'))||((s[i]>='A')&&(s[i]<='Z'))) {/**********found**********/t[j]=__1__; j++;}else{ p[k]=s[i]; k++; }}/**********found**********/for(i=0; i<__2__; i++) t[j+i]=p[i];/**********found**********/t[j+k]= __3__;return t;}main(){ char s[80];printf("Please input: "); scanf("%s",s);printf("\nThe result is: %s\n",fun(s));-----------------------------------------------------------------------------------------------------------------【参考答案】(1)s[i] (2)k (3)'\0'或0【考点分析】此题考察:数组元素赋值操作;for循环语句中循环变量的取值围;字符串完毕标识'\0'。
C 语言理论上机考试选择题分部(共200 题)1 、下面程序的输出是___D______{int x=023;#include<stdio.h>printf("%d\n",--x);void main()}{ int k=11;A) 17B) 18C) 23D) 24 printf("k=%d,k=%o,k=%x\n",k,k,k);11、下面程序的输出的是_____C____.}#include<stdio.h>A) k=11,k=12,k=11B) k=11,k=13,k=13void main()C) k=11,k=013,k=0xb D) k=11,k=13,k=b{int x=10,y=3;printf("%d\n",y=x/y);2 、在下列选项中 ,不正确的赋值语句是__D______.}A) ++t;B) n1=(n2=(n3=0));A) 0B) 1C) 3D)不确定的值C) k=i=j;D) a=b+c=1;的输出是______A_____. 3 、下面合法的 C 语言字符常量是A) '\t'B) "A"C) 65D) A4 、表达式: 10!=9 的值是 ________D____.A) true B) 非零值C) 0D) 15、C语言提供的合法的数据类型关键字是_____B____.A) Double B) short C) integer D) Char6 、字符(char) 型数据在微机内存中的存储形式是系 , 则能正确表示这一关系的表达式为____D__. __D__.A)反码B)补码C) EBCDIC码D) ASCII码7 、 C 语言程序的基本单位是_____C______.A)程序行B)语句C)函数D)字符8 、设int a=12, 则执行完语句a+=a-=a*a后,a的值是____D____A) 552B) 264C) 144D) -2649、执行下面程序中的输出语句后,输出结果是____B__.#include<stdio.h>void main()12、已知字母 A 的 ASCII码为十进的制65, 下面程序______A____.#include<stdio.h>void main(){char ch1,ch2;ch1='A'+'5'-'3';ch2='A'+'6'-'3';printf("%d,%c\n",ch1,ch2);}A) 67,D B) B,C C) C,D D)不确定的值13、若要求在if 后一对圆括号中表示 a 不等于0的关A) a<>0B) !a C) a=0D) a14 、以下程序的输出结果是____D_____.#include<stdio.h>void main(){ int x=10,y=10;printf("%d %d\n",x--,--y);}A) 10 10B)99C)910D)10915、设有如下定义:int x=10,y=3,z;则语句{int a;printf("%d\n",z=(x%y,x/y));的输出结果是_____D_____. printf("%d\n",(a=3*5,a*4,a+5));}A)1B)0C)4D)3A) 65B) 20C) 15D) 1016 、为表示关系x ≥ y ≥ z,应使用C语言表达式10 、下面程序的输出是____B______.___A___.#include<stdio.h>A) (x>=y)&&(y>=z)B) (x>=y)AND(y>=z) void main()C) (x>=y>=z)D) (x>=y) & (y>=z)- 1 -A) 8,10,8,10B) 9,11,8,1017 、 C 语言中非空的基本数据类型包括____B____.C) 9,11,9,10D) 9,10,9,11A) 整型 ,实型 ,逻辑型B) 整型 ,实型 ,字符型C) 整型 , 字符型 ,逻辑型22、已知a=12, 则表达式 a+=a-=a*=a的结果是D) 整型 ,实型 ,逻辑型 ,字符型_____A__.18 、若 x 和 y都是 int型变量 ,x=100,y=200, 且有下面的A) 0B) 144C) 12D) -264程序片段 :23 、若已定义int a,则表达式a=10,a+10,a++ 的值是printf("%d",(x,y));__B_.上面程序片段的输出结果是____A___.A) 20B) 10C) 21D) 11 A) 200B) 100C) 100 200D)输出格式符不够,输出不确定的值24、阅读下面的程序#include<stdio.h>19 、阅读下面的程序void main()#include<stdio.h>{void main()int i,j;{scanf("%3d%2d",&i,&j);char ch;printf("i=%d,j=%d\n",i,j);scanf("%3c",&ch);}如果从键盘上输入1234567< 回车 >,则程序的运行结果printf("%c",ch);}是 ____D____.如果从键盘上输入A) i=123,j=4567B) i=1234,j=567 abc< 回车 >C) i=1,j=2D) i=123,j=45则程序的运行结果是__A_____.A) a B) b C) c D)程序语法出错25、下面程序的输出结果是____D____.#include<stdio.h>20 、阅读下面的程序void main()#include<stdio.h>{void main()int a=-1, b=4, k;{k=(++a<=0)&&(b--<=0);int i,j;printf("%d,%d,%d\n",k,a,b);i=010;}j=9;A) 1,1,2B) 1,0,3C) 0,1,2D) 0,0,3 printf("%d,%d",i-j,i+j);}26、下面程序的输出结果是____A____.则程序的运行结果是____D____.#include<stdio.h>A) 1,19B) -1,19C) 1,17D) -1,17void main(){21 、阅读下面的程序int a=5,b=3;#include<stdio.h>float x=3.14, y=6.5;void main()printf("%d,%d\n",a+b!=a-b,x<=(y-=6.1));{}int i,j,m,n;A) 1,0B) 0,1C) 1,1D) 0,0 i=8;j=10;m=++i;27、执行下面程序段后,输出结果是 ____A____.n=j++;int a;printf("%d,%d,%d,%d",i,j,m,n);int b=65536;}a=b;程序的运行结果是______C____.printf("%d\n",a);- 2 -A) 65536B) 0C) -1D) 1D) C语言中变量必须先定义后引用28 、若有以下定义和语句:38、 C 语言中的变量名只能由字母,数字和下划线三种字符组成 ,且第一个字符____C____. int a=010, b=0x10, c=10;printf("%d,%d,%d\n",a,b,c);A)必须为字母则输出结果是____B_____.B)必须为下划线A) 10,10,10B) 8,16,10C) 8,10,10D) 8,8,10C)必须为字母或下划线29 、已知有double 型变量 x=2.5,y=4.7,整型变量 a=7,D)可以是字母 ,数字或下划线中的任意一种则表达式x+a%3*(int)(x+y)%2/4的值是_____B____.39、设有说明 :char w; int x; float y; double z;则表达式 :A) 2.4B) 2.5C) 2.75D) 0w*x+z-y值的数据类型是___D____.A) float B) char C) int D) double30 、若已定义x 和 y 是整型变量,x=2;,则表达式y=2.75+x/2的值是 ____C____.40、一个 C 语言的执行是从_____A______.A) 5.5B) 5C) 3D) 4.0A)本程序的主函数开始,到本程序的主函数结束B)本程序的第一个函数开始,到本程序的最后一个函31 、以下程序的输出结果是____D____.数结束#include<stdio.h>C)本程序的主函数开始,到本程序的最后一个函数结void main()束{D)本程序的第一个函数开始,到本程序的主函数结束int a=12, b=12;printf("%d,%d\n",--a,++b);41、设 a 为整型变量 ,不能正确表达数学关系10<a<15的 C 语言表达式是 ____A____. }A) 10,10B) 12,12C) 11,10D) 11,13A) 10<a<15C) a>10&&a<15B) a==11||a==12||a==13||a==14 D) !(a<=10)&&!(a>=15)32 、设有以下语句:int x=10;x+=3+x%(3),则x的值是 .____A_____42、下列程序执行后的输出结果是_____C____.A)14B) 15C) 11D) 12#include <stdio.h>void main( )33、若 d 为 double 型变量 ,则表达式d=1,d+5,d++ 的值{ int a=5,b=60,c;是_____D__.if (a<b)A)1B) 6.0C) 2.0D) 1.0{c=a*b;printf("%d*%d=%d\n",b,a,c);}else34、表达式5!=3的值是 ____D____.{c=b/a;printf("%d/%d=%d\n",b,a,c);}A) T B)非零值C) 0D) 1}A) 60/5=12B) 300C) 60*5=300D) 1235、若有定义int a=12,n=5, 则表达式a%=(n%2) 运算后 ,a 的值 ______A____.43、如果 c 为字符型变量,判断 c 是否为空格不能使用 ____A____.( 假设已知空格ASCII码为 32) A) 0B) 1C) 12D) 6A) if(c=='32')B) if(c==32)36、若有定义int x=3,y=2和 float a=2.5,b=3.5, 则表达C) if(c=='\40')D) if(c=='')式:(x+y)%2+(int)a/(int)b的值是__D__.A)0B) 2C) 1.5D) 144、运行下面程序时,若从键盘输入"3,5<CR>",则程序的输出结果是 ____D____.37、在 C 语言中 ,以下叙述不正确的是_____A____.#include <stdio.h>A)在 C 程序中 ,无论是整数还是实数,都能被准确无误void main( )的表示{B)在 C 程序中 ,变量名代表存储器中的一个位置int x,y;C)静态变量的生存期与整个程序的生存期相同scanf("%d,%d",&x,&y);- 3 -if (x==y)printf("x==y");else if (x>y)printf("x>y");elseprintf("x<y");}A) 3<5B) 5>3C) x>y D) x<y45、运行下面程序时,若从键盘输入数据为 "6,5,7<CR>" ,则输出结果是 ____C___.#include <stdio.h>void main( ){ int a,b,c;scanf("%d,%d,%d",&a,&b,&c);if (a>b)if (a>c)printf("%d\n",a);elseprintf("%d\n",c);else输出结果是___A___. if (b>c)printf("%d\n",b);elseprintf("%d\n",c);}A)5B)6C)7D)不定值46 、执行下面程序时,若从键盘输入"2<CR>" ,则程序的运行结果是____A____.#include <stdio.h>void main( ){ int k; char cp;cp=getchar( );if (cp>='0' && cp<='9')k=cp-'0';else if (cp>='a' && cp<='f')k=cp-'a'+10;else k=cp-'A'+10;printf("%d\n",k);}A)2B)4C)1D)1047 、运行下面程序时,从键盘输入"2.0<CR>",则输出结果是___B_____.#include <stdio.h>void main( ){ float a,b;scanf("%f",&a);if (a<0.0) b=0.0;else if ((a<0.5) && (a!=2.0))b=1.0/(a+2.0); else if(a<10.0) b=1.0/2;else b=10.0;printf("%f\n",b);}A) 0.000000B) 0.500000C) 1.000000D) 0.25000048、执行下面程序后,运行结果是 ____A____.#include <stdio.h>void main( ){ int x=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=43C) y=42D) y=149 、运行下面程序时,从键盘输入"12,34,9<CR>",则#include <stdio.h>void main( ){ int x,y,z;scanf("%d,%d,%d",&x,&y,&z);if (x<y)if (y<z)printf("%d\n",z);else printf("%d\n",y);else if (x<z)printf("%d\n",z);else printf("%d\n",x);}A) 34B) 12C) 9D) 不确定的值50 、运行下面程序时,从键盘输入字母H ,则输出结果是 _____C___.#include <stdio.h>void main( ){ char ch;ch=getchar( );switch(ch){ case 'H':printf("Hello!\n");case 'G':printf("Good morning!\n");default:printf("Bye_Bye!\n");}}A) Hello!B) Hello!Good Morning!C) Hello!D) Hello!- 4 -Good morning!Bye_Bye!51 、执行下列程序段后的输出结果是int x=1,y=1,z=1;x+=y+=z;Bye_Bye!_____A____.#include <stdio.h>void main( ){ int x=0,y=1,z=0;if (x=z=y)x=3;printf("%d,%d\n",x,z);printf("%d\n",x<y?y:x);A)3B)2C)152 、设 ch 是 char 型变量 ,值为 'A', 则表达式&& ch<='Z')?ch+32:ch的值是__B___.等级:B分数:60~84 A) ZD) 4ch=(ch>='A'B) a C) z}A) 3,0B) 0,0C) 0,1D) 3,157、假定等级和分数有以下对应关系:等级:A分数:85~100D) A等级:C分数:60以下对于等级grade输出相应的分数区间,能够完成该功53 、下面程序的输出结果是____C____.能的程序段是____D____. #include <stdio.h>void main( ){ int x=8,y=-7,z=9;A) switch (grade){if (x<y)if (y<0) z=0;else z-=1; printf("%d\n",z);case 'A':printf("85--100\n"); case 'B':printf("60--84\n");case 'C':printf("60以下\n"); default:printf(" 等级错误!\n");}}A) 8B) 1C) 9D) 0B)switch (grade){54 、运行下面程序时,若从键盘输入输出结果是_____B___.#include <stdio.h>void main( )"5 <CR>",则程序的case 'A':printf("85--100\n");break;case 'B':printf("60--84\n");case 'C':printf("60以下\n");default:printf("等级错误!\n");{ int a ;} scanf("%d",&a);C) switch (grade) if (a++>5)printf("%d\n",a);{} A) 7else printf("%d\n",a--) ;B) 6C) 5D) 4case 'A':printf("85--100\n");break;case 'B':printf("60--84\n");break;case 'C':printf("60以下\n");55 、运行下面程序时,若从键盘输入"3, 4 <CR>",则}程序的输出结果是____B___.#include <stdio.h>D) switch (grade){void main( ){ int a,b,s;scanf("%d,%d",&a,&b);s=a;case 'A':printf("85--100\n");break; case 'B':printf("60--84\n");break;case 'C':printf("60以下\n");break; default:printf(" 等级错误!\n");if (s<b) s=b;}s=s*s;printf("%d\n",s) ;58、能够完成如下函数计算的程序段是__B____.}┌-1x<0A) 14B) 16C) 18D) 20y=┤0x=0└1x>056 、下列程序的执行结果是_____D____.A) y=1;B) if (x>=0)- 5 -if(x!=0)if(x>0) y=1;if (a) d=d-10;if(x>0) y=1;else y=0;else if(!b)else y=0;else y=-1;if (!c) x=15;C) y=0;D) y=-1;else x=25;if (x>=0)if (x>0) y=1;printf("d=%d\n",d);if (x>0) y=1;else y=0;}else y=-1;A) d=20B) d=10C) d=15D) 2559 、有如下程序62、有如下程序:#include <stdio.h>#include <stdio.h>void main( )void main( ){ float x=5.0,y;{ int a=2,b=-1,c=2;if(x<0.0) y=0.0;if (a<b)else if (x<10.0) y=1.0/x;if (b<0) c=0;else y=1.0;else c++;printf("%f\n",y);printf("%d\n",c);}}该程序的输出结果是____C_____.该程序的输出结果是___C_____.A) 0.000000B) 0.50000A) 0B) 1C) 2D) 3C) 0.200000D) 1.00000063、下列程序执行后的输出结果是____B____.60 、以下程序的执行结果是___B_____.#include <stdio.h>#include <stdio.h>void main( )void main( ){ int x,y=1,z;{ int x=1,y=0;if ((z=y)<0)x=4;switch (x)else if (y==0) x=5;{else x=6;case 1:printf("%d,%d\n",x,y);switch (y)}{A) 4,1B) 6,1C) 5,0D) 出错信息case 0:printf("first\n");break;case 1:printf("second\n");break;64、有如下程序}#include <stdio.h>}switch(x)A) first B) first{second third case 0: b++;C) first D) second case 1: a++;third case 2: a++;b++;}61 、以下程序的执行结果是____A____.printf("a=%d,b=%d\n",a,b);#include <stdio.h>}该程序的输出结果是______A____. void main( ){ int a,b,c,d,x;A) a=2,b=1B) a=1,b=1C) a=1,b=0D) a=2,b=2 a=c=0;b=1;65、下面程序的输出结果是____C_____.d=20;#include <stdio.h>- 6 -void main( )else printf("%d\n",x--);{ int a=-1,b=1,k;}if ((++a<0) && (b--<=0))A) 7B) 6C) 5D) 4 printf("%d %d\n",a,b);else71 、以下程序段运行结果是____A____.printf("%d %d\n",b,a);int x=1,y=1,z=-1;}x+=y+=z;A)-11B)01C)10D)00printf("%d\n",x<y?y:x);66 、假定 w 、 x 、 y、 z、 m 均为 int 型变量,有如下程A) 1B) 2C) 4D)不确定的值序段:72、有以下程序w=1;x=2;y=3;z=4;#include <stdio.h>m=(w<x)?w:x;m=(m<y)?m:y;m=(m<z)?m:z;void main( )则该程序段执行后,m 的值是 ____D_____.{ int a,b,c=246;A) 4B) 3C) 2D) 1a=c/100%9;b=(-1)&&(-1);67 、以下程序的输出结果是___D______.printf("%d,%d\n",a,b);main( )}输出结果是____A____. { int a=100;if (a>100) printf("%d\n",a>100);A) 2,1B) 3,2C) 4,3D) 2,-1 else printf("%d\n",a<=100);}73、运行下面程序时,若从键盘输入数据为"123" ,则输出结果是___C____. A) a<=100B) 100C) 0D) 1#include "stdio.h"68 、若执行下面的程序从键盘上输入9,则输出结果void main()是 .______B________{ int num,i,j,k,place;#include <stdio.h>scanf("%d",&num);void main( )if (num>99){int n;place=3;scanf("%d",&n);else if(num>9)if (n++<10) printf("%d\n",n);place=2;else printf("%d\n",n--);}elseA) 11B) 10C) 9D) 8place=1;i=num/100;void main( )switch (place){ int m=4;{ case 3: printf("%d%d%d\n",k,j,i);if (++m>5) printf("%d\n",m--);break;else printf("%d\n",--m);case 2: printf("%d%d\n",k,j);}break;A) 7B) 6C) 5D) 4case 1: printf("%d\n",k);}70 、若执行下面的程序从键盘上输入5,则输出结果是 .}#include <stdio.h>A) 123B) 1,2,3C) 321D) 3,2,1 void main( ){int x;74、执行下列程序后的输出结果是___D____.scanf("%d",&x);#include <stdio.h>if (x++>5) printf("%d\n",x);void main( )- 7 -{ int k=4,a=3,b=2,c=1;printf("%d\n",k<a?k:c<b?c:a);}A) 4B) 3C) 2D) 175 、以下条件表达式中能完全等价于条件表达式x 的是 ____B___.A) (x==0)B) (x!=0)C) (x==1)D) (x!=1)76 、若运行下面程序时,给变量 a 输入15, 则输出结果是 ___A___.#include <stdio.h>void main( ){ int a,b;scanf("%d",&a);b=a>15?a+10:a-10;printf("%d\n",b) ;}A)5B)25C)15D)1077 、运行下面程序后,输出是 ___D___.#include <stdio.h>void main( ){ int k=-3;if (k<=0) printf("****\n");else printf("####\n")}A)####B)****C)####****D)有语法错误不能通过编译78 、执行下面程序的输出结果是____C____.#include <stdio.h>void main( ){ int a=5,b=0,c=0;if (a=a+b) printf("****\n");else printf("####\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) 4C) 1D) 081、以下程序段____C______.x=-1;do{x=x*x;} while (!x);A)是死循环B)循环执行两次C) 循环执行一次D) 有语法错误82、对下面程序段描述正确的是___B____.int x=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>void main( ){ int a=1,b=10;do{ b-=a;a++;} while(b--<0);printf("%d,%d\n",a,b);}A) 3,11B) 2,8C) 1,-1D) 4,985、下面程序段的运行结果是____B______.int n=0;- 8 -while (n++<=2)printf("%d",n);A) 012B) 123C) 234D) 错误信息86、下面程序段的运行结果是___D_____.int x=0,y=0;while (x<15) y++,x+=++y;printf("%d,%d",y,x);A)20,7B) 6,12C) 20,8D)8,2087、下面程序的运行结果是___B_____.#include<stdio.h>void main(){ int s=0,i=1;while (s<=10){ s=s+i*i;i++;}printf("%d",--i);}A)4B)3C)5D)688 、函数pi的功能是根据以下近似公式求π 值:____C______( π * π )/6=1+1/(2*2)+1/(3*3)+..+1/(n*n)请填空,完成求π 的功能。
c语言考试题及答案嘉兴学院一、单项选择题(每题2分,共20分)1. 在C语言中,以下哪个选项是合法的标识符?A. 2variableB. variable-nameC. _variableD. variable$name答案:C2. 下列哪个选项不是C语言的基本数据类型?A. intB. floatC. stringD. double答案:C3. 在C语言中,哪个关键字用于声明一个函数?A. functionB. defineC. voidD. return答案:C4. 如果有以下代码段:```cint a = 10;a += 5;```变量a的值是多少?A. 10B. 15C. 5D. 无法确定答案:B5. 在C语言中,以下哪个选项是正确的字符串声明?A. char str[] = "Hello";B. char str[10] = "Hello";C. char str = "Hello";D. char str[] = 'Hello';答案:A6. 在C语言中,以下哪个选项是正确的二维数组声明?A. int array[3][2];B. int array[][];C. int array[3,2];D. int array[3][2][];答案:A7. 在C语言中,以下哪个选项是正确的条件语句?A. if (x > 0)B. if x > 0C. if (x > 0) elseD. if (x > 0) else if答案:A8. 在C语言中,以下哪个选项是正确的循环语句?A. for (int i = 0; i < 10; i++)B. for i = 0; i < 10; i++C. for (int i = 0; i <= 10; i++)D. for (i = 0; i < 10; i++)答案:A9. 在C语言中,以下哪个选项是正确的函数声明?A. int add(int x, int y);B. int add(x, y);C. int add(int, int);D. int add(int x; int y);答案:A10. 在C语言中,以下哪个选项是正确的指针声明?A. int *ptr;B. int *ptr[];C. int ptr[];D. int ptr;答案:A二、填空题(每题3分,共15分)1. 在C语言中,使用________关键字可以定义一个宏。
计算机考试C语言考试题及答案2017年计算机考试C语言考试题及答案山不厌高,水不厌深。
骄傲是跌跤的前奏。
以下是店铺为大家搜索整理2017年计算机考试C语言考试题及答案,希望能给大家带来帮助!一、选择题((1)-(40)每小题1分, (41)-(50)每小题2分, 共60分)下列各题 A) 、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上,答在试卷上不得分。
(1) 下列设备中只能作为输入设备的是A.磁盘驱动器B.鼠标器C.存储器D.显示器(2) 下列DOS组合控制键中,能使标准输出同时送到屏幕与打印机的是A.Ctrl+BreakB.Ctrl+PC.Ctrl+CD.Ctrl+H(3) 通常所说的386机是A.8位机B.16位机C.32位机D.64位机(4) 二进制数01100100转换成十六进制数是A.64B.63C.100D.144(5) 十六进制数100转换成十进制数是A.1024B.512C.256D.128(6) 对于存有重要数据的5.25英寸软盘,防止计算机病毒感染的方法是A.不要与有病毒的软盘放在一起B.在写保护口贴上胶条C.保持软盘清洁D.定期对软盘格式化(7) 在启动DOS系统时,启动盘的根录下必须包含的文件是(8) DOS系统启动后,下列文件中常驻内存的是(9) 下列名字中,不能作为DOS磁盘文件名的是A.JTUB.93GZ.PRGC.COND.ATT&T.BAS(10) 下列命令中属于内部命令的是A.SYSPC.DIRD.DISKCOMP(11) 下列文件名中,能与ABC?.?匹配的是A.AB12.CB.ABCD.FORC.ABC.TXTD.ABCD.C(12) 要列出当前盘当前目录中第三个字符为"B"的所有文件的清单,可使用的命令为A.DIR **B*.*B.DIR ??B*.?C.DIR ??B.*D.DIR ??B*.*(13) 设当前盘为C盘,其根目录下有两个子目录D1与D2,且当前目录为D1,若要进入子目录D2,可使用的命令为A.CD D2B.CD D2\C.CD \D2D.CD D1\D2(14) 设当前盘为C盘,A盘当前目录为根目录。
C 语言理论上机考试选择题部分(共200题,仅针对11级定向专业)1、下面程序的输出是___D______#include<stdio.h> void main() { int k=11;printf("k=%d,k=%o,k=%x\n",k,k,k); }A) k=11,k=12,k=11 B) k=11,k=13,k=13C) k=11,k=013,k=0xb D) 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) 65 D) A4、表达式: 10!=9的值是________D____.A) true B) 非零值 C) 0 D) 15、C 语言提供的合法的数据类型关键字是_____B____.A) Double B) short C) integer D) Char6、字符(char)型数据在微机内存中的存储形式是__D__.A) 反码 B) 补码 C) EBCDIC 码 D) ASCII 码7、C 语言程序的基本单位是_____C______. A) 程序行 B) 语句 C) 函数 D) 字符8、设 int a=12,则执行完语句a+=a-=a*a 后,a 的值是____D____A) 552 B) 264 C) 144 D) -2649、执行下面程序中的输出语句后,输出结果是____B__. #include<stdio.h> void main(){int a;printf("%d\n",(a=3*5,a*4,a+5));}A) 65 B) 20 C) 15D) 1010、下面程序的输出是____B______.#include<stdio.h>void main(){int x=023;printf("%d\n",--x);}A) 17 B) 18 C) 23D) 2411、下面程序的输出的是_____C____.#include<stdio.h>void main(){int x=10,y=3;printf("%d\n",y=x/y);}A) 0 B) 1 C) 3 D) 不确定的值12、已知字母A的ASCII码为十进制的65,下面程序的输出是______A_____.#include<stdio.h>void main() {char ch1,ch2;ch1='A'+'5'-'3';ch2='A'+'6'-'3';printf("%d,%c\n",ch1,ch2); }A) 67,D B) B,C C) C,D D) 不确定的值13、若要求在if后一对圆括号中表示a不等于0的关系,则能正确表示这一关系的表达式为____D__.A) a<>0 B) !a C) a=0D) a14、以下程序的输出结果是____D_____.#include<stdio.h>void main(){ int x=10,y=10;printf("%d %d\n",x--,--y);}A) 10 10 B) 9 9 C) 9 10D) 10 915、设有如下定义:int x=10,y=3,z;则语句printf("%d\n",z=(x%y,x/y));的输出结果是_____D_____.A) 1 B) 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) 200 B) 100C) 100 200 D) 输出格式符不够,输出不确定的值19、阅读下面的程序#include<stdio.h> void main(){char ch;scanf("%3c",&ch); printf("%c",ch); }如果从键盘上输入abc<回车>则程序的运行结果是__A_____.A) a B) b C) c D) 程序语法出错20、阅读下面的程序#include<stdio.h>void main(){int i,j;i=010;j=9;printf("%d,%d",i-j,i+j);}则程序的运行结果是____D____.A) 1,19 B) -1,19 C) 1,17D) -1,1721、阅读下面的程序#include<stdio.h>void main(){int i,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,10 B) 9,11,8,10C) 9,11,9,10 D) 9,10,9,1122、已知a=12,则表达式a+=a-=a*=a的结果是_____A__.A) 0 B) 144 C) 12D) -26423、若已定义int a,则表达式a=10,a+10,a++的值是__B_.A) 20 B) 10 C) 21D) 1124、阅读下面的程序#include<stdio.h>void main(){int i,j;scanf("%3d%2d",&i,&j);printf("i=%d,j=%d\n",i,j); }如果从键盘上输入1234567<回车>,则程序的运行结果是____D____.A) i=123,j=4567 B) i=1234,j=567C) i=1,j=2 D) i=123,j=4525、下面程序的输出结果是____D____.#include<stdio.h>void main(){int a=-1, b=4, k;k=(++a<=0)&&(b--<=0);printf("%d,%d,%d\n",k,a,b);}A) 1,1,2 B) 1,0,3 C) 0,1,2D) 0,0,326、下面程序的输出结果是____A____.#include<stdio.h>void main(){int a=5,b=3;float x=3.14, y=6.5;printf("%d,%d\n",a+b!=a-b,x<=(y-=6.1)); }A) 1,0 B) 0,1 C) 1,1 D) 0,027、执行下面程序段后,输出结果是____A____.int a; int b=65536; a=b;printf("%d\n",a);A) 65536 B) 0 C) -1 D) 128、若有以下定义和语句: int a=010, b=0x10, c=10; printf("%d,%d,%d\n",a,b,c); 则输出结果是____B_____.A) 10,10,10 B) 8,16,10 C) 8,10,10 D) 8,8,1029、已知有double 型变量x=2.5,y=4.7,整型变量a=7,则表达式 x+a%3*(int)(x+y)%2/4 的值是_____B____.A) 2.4 B) 2.5 C) 2.75 D) 030、若已定义x 和y 是整型变量,x=2;,则表达式y=2.75+x/2的值是____C____.A) 5.5 B) 5 C) 3 D) 4.031、以下程序的输出结果是____D____.#include<stdio.h> void main() {int a=12, b=12;printf("%d,%d\n",--a,++b);} A) 10,10 B) 12,12 C) 11,10 D) 11,1332、设有以下语句:int x=10;x+=3+x%(3),则x 的值是.____A_____A) 14 B) 15 C) 11 D) 1233、若d 为double 型变量,则表达式d=1,d+5,d++的值是_____D__.A) 1 B) 6.0 C) 2.0 D) 1.034、表达式5!=3的值是____D____.A) T B) 非零值 C) 0 D) 135、若有定义int a=12,n=5,则表达式a%=(n%2)运算后,a 的值______A____.A) 0 B) 1 C) 12 D) 636、若有定义int x=3,y=2和float a=2.5,b=3.5,则表达式:(x+y)%2+(int)a/(int)b 的值是__D__.A) 0 B) 2 C) 1.5 D) 137、在C 语言中,以下叙述不正确的是_____A____.A) 在C 程序中,无论是整数还是实数,都能被准确无误的表示B) 在C 程序中,变量名代表存储器中的一个位置C) 静态变量的生存期与整个程序的生存期相同D) C 语言中变量必须先定义后引用 38、C 语言中的变量名只能由字母,数字和下划线三种字符组成,且第一个字符____C____. A) 必须为字母B) 必须为下划线 C) 必须为字母或下划线D) 可以是字母,数字或下划线中的任意一种39、设有说明:char w; int x; float y; double z; 则表达式: w*x+z-y 值的数据类型是___D____.A) float B) char C) int D) double40、一个C 语言的执行是从_____A______. A) 本程序的主函数开始,到本程序的主函数结束B) 本程序的第一个函数开始,到本程序的最后一个函数结束C) 本程序的主函数开始,到本程序的最后一个函数结束D) 本程序的第一个函数开始,到本程序的主函数结束41、设a 为整型变量,不能正确表达数学关系10<a<15的C 语言表达式是____A____. A) 10<a<15 B) a==11||a==12||a==13||a==14 C)a>10&&a<15D) !(a<=10)&&!(a>=15)42、下列程序执行后的输出结果是_____C____.#include <stdio.h>void main( ){ int a=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=12 B) 300 C) 60*5=300D) 1243、如果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> void main( ){int x,y;scanf("%d,%d",&x,&y);if (x==y)printf("x==y");else if (x>y)printf("x>y");elseprintf("x<y");}A) 3<5 B) 5>3 C) x>yD) x<y45、运行下面程序时,若从键盘输入数据为"6,5,7<CR>",则输出结果是____C___.#include <stdio.h>void main( ){ int a,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) 5 B) 6 C) 7 D) 不定值46、执行下面程序时,若从键盘输入"2<CR>",则程序的运行结果是____A____. #include <stdio.h> void main( ) { int k; char cp; cp=getchar( );if (cp>='0' && cp<='9') k=cp-'0';else if (cp>='a' && cp<='f') k=cp-'a'+10; else k=cp-'A'+10; printf("%d\n",k); }A) 2 B) 4 C) 1 D) 1047、运行下面程序时,从键盘输入"2.0<CR>",则输出结果是___B_____. #include <stdio.h> void main( ) { float a,b; scanf("%f",&a); if (a<0.0) b=0.0;else if ((a<0.5) && (a!=2.0)) b=1.0/(a+2.0);else if (a<10.0) b=1.0/2; else b=10.0; printf("%f\n",b); }A) 0.000000 B) 0.500000 C) 1.000000 D) 0.250000 48、执行下面程序后,运行结果是____A____.#include <stdio.h> void main( ) { int x=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=41 B) y=43 C) y=42D) y=149、运行下面程序时,从键盘输入"12,34,9<CR>",则输出结果是___A___.#include <stdio.h>void main( ){ int x,y,z;scanf("%d,%d,%d",&x,&y,&z);if (x<y)if (y<z)printf("%d\n",z);else printf("%d\n",y);else if (x<z)printf("%d\n",z);else printf("%d\n",x);}A) 34 B) 12 C) 9 D) 不确定的值50、运行下面程序时,从键盘输入字母H,则输出结果是_____C___.#include <stdio.h>void main( ){ char ch;ch=getchar( );switch(ch){ case 'H':printf("Hello!\n"); case 'G':printf("Good morning!\n");default:printf("Bye_Bye!\n");}}A) Hello! B) Hello!GoodMorning!C) Hello! D) Hello!Good morning!Bye_Bye!Bye_Bye!51、执行下列程序段后的输出结果是_____A____.int x=1,y=1,z=1;x+=y+=z;printf("%d\n",x<y?y:x);A) 3 B) 2 C) 1D) 452、设ch是char型变量,值为'A',则表达式ch=(ch>='A' && ch<='Z')?ch+32:ch的值是__B___.A) Z B) a C) z D) A53、下面程序的输出结果是____C____. #include <stdio.h> void main( ) { int x=8,y=-7,z=9; if (x<y)if (y<0) z=0; else z-=1; printf("%d\n",z); }A) 8 B) 1 C) 9 D) 054、运行下面程序时,若从键盘输入"5 <CR>",则程序的输出结果是_____B___. #include <stdio.h> void main( ) { int a ;scanf("%d",&a);if (a++>5)printf("%d\n",a); else printf("%d\n",a--) ; }A) 7 B) 6 C) 5 D) 455、运行下面程序时,若从键盘输入"3,4 <CR>",则程序的输出结果是____B___.#include <stdio.h> void main( ) { int a,b,s;scanf("%d,%d",&a,&b); s=a;if (s<b) s=b; s=s*s;printf("%d\n",s) ; }A) 14 B) 16 C) 18 D) 2056、下列程序的执行结果是_____D____. #include <stdio.h> void main( ) { int x=0,y=1,z=0; if (x=z=y) x=3;printf("%d,%d\n",x,z); }A) 3,0 B) 0,0 C) 0,1D) 3,1 57、假定等级和分数有以下对应关系: 等级: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____.┌ -1 x<0y= ┤ 0 x=0└ 1 x>0A) y=1; B) if (x>=0)if(x!=0) if(x>0) y=1;if(x>0) y=1; else y=0; else y=0; else y=-1;C) y=0; D) y=-1;if (x>=0) if (x>0) y=1;if (x>0) y=1; else y=0; else y=-1;59、有如下程序#include <stdio.h>void main( ){ float x=5.0,y;if(x<0.0) y=0.0;else if (x<10.0) y=1.0/x;else y=1.0;printf("%f\n",y);}该程序的输出结果是____C_____.A) 0.000000 B) 0.50000C) 0.200000 D) 1.00000060、以下程序的执行结果是___B_____.#include <stdio.h>void main( ){ int x=1,y=0;switch (x){case 1:switch (y) {case0:printf("first\n");break;case1:printf("second\n");break;}case 2:printf("third\n");}}A) first B) firstsecond thirdC) first D) second third61、以下程序的执行结果是____A____. #include <stdio.h>void main( ){ int a,b,c,d,x;a=c=0;b=1;d=20;if (a) d=d-10;else if(!b)if (!c) x=15;else x=25;printf("d=%d\n",d); }A) d=20 B) d=10 C) d=15 D) 2562、有如下程序: #include <stdio.h> void main( ){ int a=2,b=-1,c=2; if (a<b) if (b<0) c=0; else c++; printf("%d\n",c); }该程序的输出结果是___C_____.A) 0 B) 1 C) 2 D) 363、下列程序执行后的输出结果是____B____.#include <stdio.h> void main( ) { int x,y=1,z; if ((z=y)<0) x=4; else if (y==0) x=5; else x=6;printf("%d,%d\n",x,y); }A) 4,1 B) 6,1 C) 5,0 D) 出错信息 64、有如下程序 #include <stdio.h> void 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) a=2,b=1 B) a=1,b=1 C) a=1,b=0 D) a=2,b=265、下面程序的输出结果是____C_____. #include <stdio.h> void main( ) { int a=-1,b=1,k;if ((++a<0) && (b--<=0))printf("%d %d\n",b,a); }A) -1 1 B) 0 1 C) 1 0 D) 0 066、假定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) 4 B) 3 C) 2 D) 167、以下程序的输出结果是___D______. main( ) { int a=100;if (a>100) printf("%d\n",a>100); else printf("%d\n",a<=100); }A) a<=100 B) 100 C) 0 D) 168、若执行下面的程序从键盘上输入9,则输出结果是.______B________{int n;scanf("%d",&n);if (n++<10) printf("%d\n",n); else printf("%d\n",n--);}A) 11 B) 10 C) 9 D) 869、以下程序输出结果是_____D_____. #include <stdio.h> void main( ) { int m=4;if (++m>5) printf("%d\n",m--); else printf("%d\n",--m); }A) 7 B) 6 C) 5 D) 470、若执行下面的程序从键盘上输入5,则输出结果是.#include <stdio.h>void main( ) {int x;scanf("%d",&x);if (x++>5) printf("%d\n",x);A) 7 B) 6 C) 5 D) 471、以下程序段运行结果是____A____. int x=1,y=1,z=-1; x+=y+=z;printf("%d\n",x<y?y:x);A) 1 B) 2 C) 4 D) 不确定的值 72、有以下程序 #include <stdio.h> void main( ) { int a,b,c=246; a=c/100%9; b=(-1)&&(-1);printf("%d,%d\n",a,b); }输出结果是____A____.A) 2,1 B) 3,2 C) 4,3 D) 2,-173、运行下面程序时,若从键盘输入数据为"123",则输出结果是___C____.{ int num,i,j,k,place; scanf("%d",&num); if (num>99) place=3; else if(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;case 2: printf("%d%d\n",k,j); break;case 1: printf("%d\n",k); } }A) 123 B) 1,2,3 C) 321 D) 3,2,174、执行下列程序后的输出结果是___D____.#include <stdio.h> void main( ){ int k=4,a=3,b=2,c=1;printf("%d\n",k<a?k:c<b?c:a); }A) 4 B) 3 C) 2 D) 175、以下条件表达式中能完全等价于条件表达式x 的是____B___.A) (x==0) B) (x!=0) C) (x==1) D) (x!=1)76、若运行下面程序时,给变量a 输入15,则输出结果是___A___.#include <stdio.h> void main( ) { int a,b; scanf("%d",&a); b=a>15?a+10:a-10; printf("%d\n",b) ; }A) 5 B) 25 C) 15 D) 1077、运行下面程序后,输出是___D___.#include <stdio.h> void main( ) { int k=-3;if (k<=0) printf("****\n"); else printf("####\n") }A) #### B) ****C) ####**** D) 有语法错误不能通过编译78、执行下面程序的输出结果是____C____. #include <stdio.h> void main( ) { int a=5,b=0,c=0;if (a=a+b) printf("****\n"); else printf("####\n"); }A) 有语法错误不能编译 B) 能通过编译,但不能通过连接 C) 输出 **** D) 输出 ####79、为了避免嵌套的if-else 语句的二义性,C 语言规定else 总是与___C___组成配对关系.A) 缩排位置相同的if B) 在其之前未配对的ifC) 在其之前尚未配对的最近的if D) 同一行上的if80、设x 、y 、z 、t 均为int 型变量,则执行以下语句后,t 的值为____C_____.x=y=z=1;t=++x || ++y && ++z;A) 不定值 B) 4 C) 1 D) 081、以下程序段____C______.x=-1; do {x=x*x; } while (!x);A)是死循环 B)循环执行两次 C)循环执行一次 D)有语法错误 82、对下面程序段描述正确的是___B____.int x=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> void main( ) { int a=1,b=10; do{ b-=a;a++; } while(b--<0); printf("%d,%d\n",a,b); }A) 3,11 B) 2,8 C) 1,-1 D) 4,985、下面程序段的运行结果是____B______.int n=0; while (n++<=2) printf("%d",n);A) 012 B) 123 C) 234 D) 错误信息86、下面程序段的运行结果是___D_____. int x=0,y=0;while (x<15) y++,x+=++y; printf("%d,%d",y,x);A) 20,7 B) 6,12 C) 20,8 D)8,2087、下面程序的运行结果是___B_____.#include<stdio.h> void main() { int s=0,i=1; while (s<=10) { s=s+i*i; i++; }printf("%d",--i); }A) 4 B) 3 C) 5 D) 688、函数pi 的功能是根据以下近似公式求π值:____C______(π*π)/6=1+1/(2*2)+1/(3*3)+..+1/(n*n )请填空,完成求π的功能。
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语言理论上机考试选择题部分(共200题,仅针对11级定向专业)1、下面程序的输出是___D______#include<stdio.h>void main(){ int k=11;printf("k=%d,k=%o,k=%x\n",k,k,k);}A) k=11,k=12,k=11 B) k=11,k=13,k=13 C) k=11,k=013,k=0xb D) 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) 65 D) A4、表达式: 10!=9的值是________D____.A) true B) 非零值C) 0 D) 15、C语言提供的合法的数据类型关键字是_____B____.A) Double B) short C) integer D) Char6、字符(char)型数据在微机内存中的存储形式是__D__.A) 反码B) 补码C) EBCDIC码D) ASCII码7、C语言程序的基本单位是_____C______.A) 程序行B) 语句C) 函数D) 字符8、设int a=12,则执行完语句a+=a-=a*a后,a的值是____D____A) 552 B) 264 C) 144 D) -264 a=a-a*a a=a+a9、执行下面程序中的输出语句后,输出结果是____B__.#include<stdio.h>void main(){int a;printf("%d\n",(a=3*5,a*4,a+5));}A) 65 B) 20 C) 15 D) 1010、下面程序的输出是____B______.#include<stdio.h>void main(){int x=023;printf("%d\n",--x);}A) 17 B) 18 C) 23 D) 2411、下面程序的输出的是_____C____.#include<stdio.h>void main(){int x=10,y=3;printf("%d\n",y=x/y);}A) 0 B) 1 C) 3 D) 不确定的值12、已知字母A的ASCII码为十进制的65,下面程序的输出是______A_____.#include<stdio.h>void main(){char ch1,ch2;ch1='A'+'5'-'3';ch2='A'+'6'-'3';printf("%d,%c\n",ch1,ch2);}A) 67,D B) B,C C) C,D D) 不确定的值13、若要求在if后一对圆括号中表示a不等于0的关系,则能正确表示这一关系的表达式为____D__.A) a<>0 B) !a C) a=0 D) a14、以下程序的输出结果是____D_____.#include<stdio.h>void main(){ int x=10,y=10;printf("%d %d\n",x--,--y);}A) 10 10 B) 9 9 C) 9 10 D) 10 9 自加自减15、设有如下定义:int x=10,y=3,z;则语句printf("%d\n",z=(x%y,x/y));的输出结果是_____D_____.A) 1 B) 0 C) 4 D) 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) 200 B) 100C) 100 200 D) 输出格式符不够,输出不确定的值只读取逗号后面的19、阅读下面的程序#include<stdio.h>void main(){char ch;scanf("%3c",&ch);printf("%c",ch);}如果从键盘上输入abc<回车>则程序的运行结果是__A_____.A)a B) b C) c D) 程序语法出错只读取第一个字符型数据20、阅读下面的程序#include<stdio.h>void main(){int i,j;i=010;j=9;printf("%d,%d",i-j,i+j);}则程序的运行结果是____D____.A) 1,19 B) -1,19 C) 1,17 D) -1,17 010是八进制21、阅读下面的程序#include<stdio.h>void main(){int i,j,m,n;i=8;j=10;m=++i;n=j++;printf("%d,%d,%d,%d",i,j,m,n);}程序的运行结果是____9 11 9 10__C____. A) 8,10,8,10 B) 9,11,8,10C) 9,11,9,10 D) 9,10,9,11自加自减,++在前先加,++在后相反22、已知a=12,则表达式a+=a-=a*=a的结果是_____A__.A) 0 B) 144 C) 12 D) -264 不同于前面一道题23、若已定义int a,则表达式a=10,a+10,a++的值是__B_.A) 20 B) 10 C) 21 D) 1124、阅读下面的程序#include<stdio.h>void main(){int i,j;scanf("%3d%2d",&i,&j);printf("i=%d,j=%d\n",i,j);}如果从键盘上输入1234567<回车>,则程序的运行结果是____D____.A) i=123,j=4567 B) i=1234,j=567C) i=1,j=2 D) i=123,j=4525、下面程序的输出结果是____D____.#include<stdio.h>void main(){int a=-1, b=4, k;k=(++a<=0)&&(b--<=0);printf("%d,%d,%d\n",k,a,b);}A) 1,1,2 B) 1,0,3 C) 0,1,2 D) 0,0,326、下面程序的输出结果是____A____.#include<stdio.h>void main(){int a=5,b=3;float x=3.14, y=6.5;printf("%d,%d\n",a+b!=a-b,x<=(y-=6.1));}A) 1,0 B) 0,1 C) 1,1 D) 0,0判别,正确是1,错误是027、执行下面程序段后,输出结果是____A____.int a;int b=65536;a=b;printf("%d\n",a);A) 65536 B) 0 C) -1 D) 128、若有以下定义和语句:int a=010, b=0x10, c=10;printf("%d,%d,%d\n",a,b,c);则输出结果是____B_____.A) 10,10,10 B) 8,16,10 C) 8,10,10 D) 8,8,10 八进制,十六进制,十进制29、已知有double型变量x=2.5,y=4.7,整型变量a=7, 则表达式x+a%3*(int)(x+y)%2/4 的值是_____B____.A) 2.4 B) 2.5 C) 2.75 D) 0 (int)(x+y)%2/4整型30、若已定义x和y是整型变量,x=2;,则表达式y=2.75+x/2的值是____C____.A) 5.5 B) 5 C) 3 D) 4.0整型31、以下程序的输出结果是____D____.#include<stdio.h>void main(){int a=12, b=12;printf("%d,%d\n",--a,++b);}A) 10,10 B) 12,12 C) 11,10 D) 11,1332、设有以下语句:int x=10;x+=3+x%(3),则x的值是.____A_____A) 14 B) 15 C) 11 D) 1233、若d为double型变量,则表达式d=1,d+5,d++的值是_____D__.A) 1 B) 6.0 C) 2.0 D) 1.0 逗号运算34、表达式5!=3的值是____D____.A) T B) 非零值C) 0 D) 135、若有定义int a=12,n=5,则表达式a%=(n%2)运算后,a的值______A____.A) 0 B) 1 C) 12 D) 636、若有定义int x=3,y=2和float a=2.5,b=3.5,则表达式:(x+y)%2+(int)a/(int)b的值是__D__.A) 0 B) 2 C) 1.5 D) 11.float型转换为int型,只取整数部分不产生四舍五入等效果。