大一c语言上机考试题库(大一c语言上机考试题库含答案)大一C语言期末考试求题库一、单项选择题(共10题,每题2分,共20分。在备选答案中选择一个最佳答案。多选、错选、不选不得分) 1、不是C语言基本数据类型的是( )。 A、指针类型 B、整型 C、字符型 D、实型 2、设有:int a=3, b= 4, c= 5,x , y; 表达式0 (x=a)(y=b)的值为( )。 A、1 B、0 C、3 D、4 3、设有语句 int a=3 ; 则执行了语句 a+=6;后,变量a 的值为( )。 A、18 B、-3 C、9 D、12 4、执行以下程序段后,输出的y值为( ) void main() { int a[]={2,4,6,8,10}; int y, *p; p=a[0]; y=*p; printf(“%d”,y); } A、2 B、4 C、6 D、8 5、有定义语句:float a[4];则分配给数组a的内存空间为( )字节。 A、 20 B、 12 C、 16 C、10 6、以下描述错误的是( )。 A、break语句可用于while语句。 B、break语句和continue语句的作用是一样的。 C、在循环语句中使用break语句是为了跳出循环,提前结束循环。 D、在循环语句中使用continue语句是为了结束本次循环,而不终止整个循环。 7、C语言中规定,if语句的嵌套结构中,else总是( )。 A、与最近的if 配对 B、与第一个if 配对 C、按缩进位置相同的if配对 D、与最近的且尚未配对的if 配对 8、说明语句“int (*p)( ); ”的含义是( ) 。 A、p是一个指向一维数组的指针变量。 B、p是指针变量,指向一个整型数据。 C、p是一个指向函数的指针,该函数返回一个int型数据。 D、以上都不对。 9、以下对二维数组c的正确声明是 ( ) 。 A、int c[3][ ]; B、int c(3,4); C、int c(2)(2); D、int c[3][2]; 10、下述程序段执行后输出结果为( )。 int x=100, y=200; printf ("% d", (x, y)); A、100 B、200 C、100,200 D、编译出错 二、填空题(共7题,共10空,每空1分,共10分。将答案填在题中横线上) 1、C语言提供的三种逻辑运算符是 、 || 和!; 2、函数的返回值是通过函数中的 return 语句获得的。 3、在"int a[ ][3]={{1},{3,2},{4,5,6},{0}};"定义后,a[2][2]的值为_6__ _; 4、对于"int *pa[5];" pa是一个具有5个元素的_数组指针_,每个元素是一个指向int型变量的__指针__; 5、单向链表的尾节点next指针应赋值__ NULL___; 6、在语句for(x=1,y=3;xy;y++)中循环体执行的次数为 0 。 7、int a[5];数组a的首地址为2000,则元素a[1]的地址为 2002 ,元素a[2]的地址为 2004 。 三、程序填空题(共2题,共5空,每空4分,共20分) 1、以下程序完成计算1-1/2+1/3-1/4+1/5+……前n 项和,请填空。 #include stdio.h int main( ) { int i, n, flag; float sum; scanf("%d", n); flag= 1 ; sum=0; for(i=1;i=n; i++ ) { sum+=(float)flag/i; flag=-flag ; } printf("%.3fn", sum); } 2、以下程序的功能是从键盘输入n个整数,统计其中正数、0、负数的个数,请填空。 #include stdio.h void main( ) {int a, i, count1,count2,count3; count1=count2=count3=0 ; for(i=1;i=n;i++) { scanf(“%d”, a); if(a0) count1++; else if(a==0) count2++ ; else count3++; } printf(“正数:d个,零:%d个,负数:%d个n”, count1,count2,count3 ); } 四、运行程序结果题(共4题,每题6分,共24分) 1、写出程序运行结果。 void main( ) { int x=1,y=2,t; int *p1,*p2; p1=x; p2=y; t=*p1;*p1=*p2;*p2=t; printf("x=%d,y=%dn",x,y); } 运行结果为: 程序有错,不能运行!或写: x=2,y=1 2、写出程序运行结果。 #includestdio.h int max(int a,int b) { int c; c=ab?a:b; return(c); } int min(int a,int b) {int c; c=ab?a:b; return(c); } void main() { int a=2,b=6; printf("max=%dn",max(a,b)); printf(“min=%dn”,min(a,b)); } 运行结果为: 程序有错,不能运行!或写: max=6 min=2 3、写出程序运行结果。 #include stdio.h void main() { int a[3][3]={1,2,3,4,5,6,7,8,9}; int i,j,sum=0; for (i=0;i3;i++) for(j=0;j3;j++) if(i==j) sum=sum+a[i][j]; printf(“sum=%dn”,sum); } 运行结果为: 程序有错,不能运行!或写: sum=15 4、写出程序运行结果。 void main( ) { int n,f; n=1; while(n=10) { f=f*n; n+=2; } printf(“f=%dn”,f); } 运行结果为: 程序有错,不能运行!或写: f=不确定 五、程序设计题(共2题,每题13分,共26分) 1、将一个数组按逆序存放,如元素1、2、3、4、5,按逆序存放后为5、4、3、2、1。 对于大一学过c语言的人来说通过计算机二级c语言难不难?不难,考试前做几套真题,保证都搞懂,不懂的上机测试一下,编程也要上机练习练习,基本上没问题的。 计算机二级c语言简介: 《全国计算机等级考试二级C语言》是2009年6月由电子工业出版社出版的图书,作者是桂阳,王功明。本书主要基于历年试题,利用统计分析的方法,科学地对题目做出结论并预测以后的出题动向。 基于历年试题,利用统计分析的方法,科学地做出结论并预测以后的出题动向,是本书的一大特色。本书可以保证既不漏掉考试必需的知识点,又不加重考生备考负担,使考生轻松、愉快地掌握知识点并领悟二级C语言考试的真谛。 “一书在手,过关无忧”。对于机试方面,经过深入分析上机考试题库内容,本书作者精心组织了5套全真模拟试题,试题涉及历次考试内容的各个方面。 本书可以作为参加全国计算机等级考试——二级C语言考试的复习用书,也可作为学习C语言的参考书。 求一份大一c语言考试试卷,加答案附件上传失败... C语言期末考试题及答案(1) 1、构成C语言的基本单位是___B____。 过程? 函数? 语句? 命令? 2、设x为整型变量,不能正确表达数学关系:5x10的c语言表达式是__B___。 5 x5x10? x==6||x==7||x==8||x==9? !(x=5)(x10)? 3、在C语言中,逻辑运算符的优先级从高到低的排列顺序为__D___。 、||、!? ||、、!? 、!、||? !、、||? 4、下面语句中,正确的是__D___。 printf("%cn","student");? printf("%cn","c");? printf("%sn",a);? printf("%sn","hello");? 5、对于for(表达式1;;表达式3)可以理解为__B___。 for(表达式1;0;表达式3)? for(表达式1;1;表达式3)? for(表达式1;表达式1;表达式3)? for(表达式1;表达式3;表达式3)? 6、执行下面程序段的结果是__B___。 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",a,b); } a=1,b=1? a=2,b=1? a=1,b=0? a=2,b=2? 7、执行下面程序段的结果是__D___。 int x=0; do { printf(“%2d”,x--); }while(x); 打印出321? 打印出23? 不打印任何结果? 陷入死循环? 8、设x=10,y=5;z=15,执行下面一段程序后z的结果是__C___。 If(xy) if(yz)x=y; else z=y; 7? 6? 5? 4? 9、如果一个函数被说明为static,那么__B___。 该函数只能被main函数调用? 该函数能被当前文件的函数调用,但不能被其他文件的函数调用? 该函数不能被当前文件的函数调用,可以被其他文件的函数调用? 任何文件的函数都可以调用该函数? 10、下面关于局部变量的描述中,错误的是__D___。 函数的局部变量的有效范围只能在本函数? 函数的形式参数也是局部变量? 局部变量的名称不能和函数同名称? 不同的函数中不能定义相同名称的局部变量? 11、下列初始化字符数组的语句中,错误的是__A___。 char str[5]="hello";? char str[]={'h','e','l','l','o','\0'};? char str[5]={"hi"};? char str[100]="";? 12、引用数组元素时,数组下标可以是__D___。 整型常量? 整型变量? 整型表达式? 以上均可? 13、 已知:char str[10],*p=str; 下面的语句中正确的是__B___。 str="ABC";? p="ABC";? *str="ABC";? *p="ABC";? 14、下面语句中,错误的是___D__。 int i;int *p;p=i;? int i,*p;p=a;? int i,*p=a;? int i,*p;*p=i;? 15、下面对于结构体类型的描述正确的是__A___。 结构体类型的大小为各成员变量所占内存的总和? 结构体类型变量与简单数据类型变量的引用规则一致。? 结构体类型的大小为其成员中所占内存空间最大的变量的大小? 结构体类型的大小为其最后一个成员中所占内存空间的大小? 16、C语言规定:在一个源程序中,main函数的位置____C____。 必须在最开始? 必须在系统调用的库函数的后面? 可以任意? 必须在最后? 17、表达式18/4*sqrt(4.0)/8值的数据类型是 ___C____。 int? float? double? 不确定? 18、在c语言中,char型数据在内存中的存储形式是 ___D___。 补码? 反码? 原码? ASCII码? 19、阅读以下程序,当输入的数据形式为:25,13,10CR时,正确的输出结果为___D___。 main() { int x,y,z; scanf("%d%d%d",x,y,z); printf("x+y+z=%dn",x+y+z); } x+y+z=48? x+y+z=35? x+z=35? 不能确定? 20、有如下程序 void main() { float x=2.0,y; if(x0.0) y=0.0; else if(x10.0) y=1.0/x; else y=1.0; printf(“%fn”,y); } 该程序的输出结果是( C )。 0.000000? 0.250000? 0.500000? 1.000000? 21、判断char型变量s是否为小写字母的正确表达式是__C____。 'a'=s='z'? (s='a')(s='z')? (s='a')(s='z')? ('a'=s)and('z'=s)? 22、执行以下语句后,y 的值为___A___。 int x,y,z; x=y=z=0; ++x || ++y ++z; 0? 1? 2? 不确定值? 23、有如下程序段: int number=0; while(number++=3) printf(“%dn”,number++); 则正确的执行结果是___C___。 2 3 4? 0 1 2? 1 3? 2 4? 24、有如下程序 void main() { int n=9; while(n6) { n--; printf(“%d”,n); } } 该程序段的输出结果是__B___。 987? 876? 8765? 9876? 25、要使以下程序段输出10个整数,请在空格中填入一个整数。 for(i=0;i=___B___;printf("%dn",i+=2)); 15? 18? 20? 10? 26、设函数fun的定义形式为: fun(char ch,float x){…} 则以下对函数fun的调用语句中正确的是___B___。 fun(“abc”,3)? t=fun(‘D’,5)? fun(‘ab’,3)? fun(‘78’,1)? 27、函数求sum(int n)的功能是计算自然数1到n的和,即1+2+…+n。 Main() { printf("The sum=%dn",sum (10)); } int sum(int n){ int s=0,i; for(i=0;i=n;i++) _____B_____ } 请从备选答案中选择一答案,补全程序。 s=s+n;return s;? s=s+i;return s;? return s;? return s+=I;? 28、设函数fun的定义形式为 int fun(int a[],int n) { int s=0,i=0; for(i=0;in;i++)s+=a[i]; return s; } main() { int a[10]={1,2,3,4,5}; printf("sum=%d", fun(a[2],2)); } 则程序的运行结果为___C___。 3? 5? 7? 9? 29、若有说明:int a[10];则对数组元素的正确引用是___D____。 a[10]? a[3,5]? a(5)? a[10-10]? 30、以下不正确的定义语句是___B___。 double x[5]={2.0,4,0,6,0,8,0,10.0};? int y[5]={0,1,3,5,7,9};? char c1[]={'1','2','3','4','5'};? char c2[]={'x10','xa','x8'};? 31、下面程序的运行结果是___B____。 #include "stdio.h" main() { char str[]="SWLIA",c; int k; for(k=0;(c=str[k])!='\0';k++) { switch(c) { case 'I':++k;break; c SWA? SW*? SW*A? SW? 32、以下能正确进行字符串赋值操作的是___D___。 char s[5]={"12345"};? char s[5]={'1','2','3','4','5',‘6’};? char *s;*s="12345";? char *s="12345";? 33、以下程序段的运行结果是___C___。 Char a[ ]="program", *p; p=a; while (*p!='g') { printf("%c", *p-32); p++; } PROgram? PROGRAM? PRO? proGRAM? 34、若有说明:char *pc[ ]={"aaa", "bbb", "ccc", "ddd"};,则以下叙述正确的是__C____。 *pc[0]代表的是字符串"aaa"的首地址? *pc[0]代表的是字符'a'的首地址? pc[0]代表的是字符串"aaa"的首地址? pc[0]代表的是字符'a'的首地址? 35、下列程序的运行结果是___B___。 #include stdio.h #include string.h void f (char *s, int n) { char a,*q1,*q2; q1=s;q2=s+n-1; while(q1q2) { a=*q1++; *q1=*q2--; *q2=a;} } main() { char b[]="ABCDEFG"; f(b, s GAGGAGA? AGAAGAG? GFEDCBA? AGADAGA? 36、定义如下的结构体描述同学信息 struct Student { unsigned long id; char name[30]; char class[30]; }s; 假设此同学的序号为1002,姓名为黎明,班级为冶金3班,则描述正确的为___C__。 id=1002; name=黎明; class=冶金3班;? id=1002; name=”黎明”; class=”冶金3班”;? s.id=1002; s.name=”黎明”; s.class=”冶金3班”;? s.id=1002; s.name=黎明; s.class=冶金3班;? 37、用来描述C程序中注释的是__C___。 //? ? **? 38、下列变量中合法的定义是__A___。 short _a=2-1? long if=0xabcL? double 1_d=1.5e2? float a=1.5e2.7? 39、当c的值不为0时,能够将c的值赋给变量a和b的是__C___ c=b=a? (a=c)||(b=c)? (a=c)(b=c)? a=c=b? 40、设有以下程序段,执行后的输出结果是___B__ int x=100,y=200; printf("%d",(x,y)); 100? 200? 100,200? 编译出错 C语言期末考试题及答案(2) 1、若执行下面的程序时从键盘输入10,则输出是__B__ main( ) { int a; scanf(“%d”,a); if(a++10) printf(“%dn”,++a); else printf("%dn",a--); } 12? 11? 10? 9? 2、执行下面程序段的结果是__D___ int x=0; do { printf(“%2d”,x--); }while(x); 打印出321? 打印出23? 不打印任何结果? 陷入死循环? 3、执行与句:for(n=0;n++4; ); 后,变量n的值是__C__。 3? 4? 5? 不定? 4、以下关于循环的描述中,错误的是__D___。 可以用for语句实现的循环一定可以用while语句实现? 可以用while语句实现的循环一定可以用for语句实现? 可以用do…while语句实现的循环一定可以用while语句实现? do…while语句与while语句的区别仅仅是关键字while的位置不同? 5、下面的描述错误的是__C__。 函数可以有多个形式参数? 函数可以没有返回值? 函数内可以嵌套定义函数? 函数可以被其他函数调用? 6、函数返回值的类型是由__A__决定的。 定义函数时指定的返回类型? 函数中return语句的表达式类型? 主调函数的实际参数类型? 主调函数的返回值类型? 7、定义了一维int型数组a[10]后,下面错误的引用是__B__。 a[0]=1;? a[10]=2;? a[0]=5*2;? a[1]=a[2]*a[0];? 8、定义了int型二维数组a[6][7]后,数组元素a[3][4]前的数组元素个数为__B__。 24? 25? 18? 17? 9、下面语句中,错误的是__D__。 int i; int *p; p=i;? int i,*p; p=a;? int i,*p=a;? int i,*p; *p=i;? 10、 已知int型二维数组a[3][4],数组元素a[1][2]的地址不能表达为__C__。 a[1][2]? a[1]+2? *a[1]+2? *(a+1)+2? 11、C语言中,5种基本数据类型的存储空间长度的排列顺序为___A___。 char char=int char char=int=long int=float 12、假设所有变量均为整型,则表达式(a=2,b=5,b++,a+b)的值是 ___B___。 7? 8? 6? 2? 13、若有说明语句:char c='72';则变量c ___A___。 包含1个字符? 包含2个字符? 包含3个字符? 说明不合法,c的值不确定? 14、若x,y均定义为整型,z定义为double型,以下不合法的scanf函数调用语句是___C___。 scanf("%d%lx,%le",x,y,z);? scanf("%2d * %d%lf",x,y,z);? scanf("%x%*d%o",x,y,z);? scanf("%x%o%6.2f",x,y,z);? 15、若输入字符串:abcde回车,则以下while循环体将执行___A___次。 while((ch=getchar())=='e') printf("*"); 1次? 死循环? 0次? 5次? 16、执行下面的程序段后,k的值是___C___。 k=1;n=263; do{k*=n%10;n/=10;}while(n); 3? 63? 36? 2? 17、下面程序段中循环的执行次数是___B___。 a=10;b=0; do{b+=2;a-=2+b;}while(a=0); 10? 3? 5? 4? 18、下面程序段的运行结果是__D____。 x=2; do{printf("*");x--;}while(!x==0); *? ***? 没有输出? **? 19、下面程序段的运行结果是___B___。 i=1;s=1;a=0; do{a=a+s*i;s=-s;i++;}while(i=10); printf("%d",a); 2? -2? 3? 0? 20、有如下程序 void main() { int a=2,b=-1,c=2; if(a) if(b0) c=0; else c++; printf("%dn",c); } 该程序的输出结果是___A___。 0? 1? 2? 3? 21、程序中对fun函数有如下说明 void fun(); 下面说明是错误的是___B___。 fun函数无返回值? fun函数的返回值可以是任意的数据类型? fun函数没有形式参数? void 可以省略? 22、函数求sum(int n)的功能是计算自然数1到n的和,即1+2+…+n。 main() { printf("The sum=%dn",sum (10)); } int sum(int n){ int s=0,i; for(i=0;i=n;i++) _____B_____ } 请从备选答案中选择一答案,补全程序。 s=s+n; return s;? s=s+i; return s;? return s;? return s+=i;? 23、 有以下程序 int f1(int x,int y){return xy?x:y;} int f2(int x,int y){return xy?y:x;} main() { int a=4,b=3,c=5,d=2,e,f,g; e=f2(f1(a,b),f1(c,d)); f=f1(f2(a,b),f2(c,d)); g=a+b+c+d-e-f; printf()__A___ 4,3,7? 3,4,7? 5,2,7? 2,5,7? 24、若有说明:int a[][3]={1,2,3,4,5,6,7};则数组a第一维的大小是___B___。 2? 3? 4? 无确定值? 25、判断字符串s1是否大于字符串s2,应当使用___D____。 if(s1s2)? if(strcmp(s1,s2))? if(strcmp(s2,s1)0)? if(strcmp(s1,s2)0)? 26、当运行以下程序时,从键盘输入:AhaMA AhaCR CR表示回车,则下面程序的运行结果是___A____。 #include "stdio.h" main() { char s[80],c='a'; int i=0; scanf("%s",s); while(s[i]!='\0') { if(s[i]==c) ahAMa? AhAMa? AhAMa ahA? ahAMa ahA? 27、以下程序执行后a的值为___C____。main( ) { int a,m=2, k=1, *p=k; a=p!=m; printf("%dn",a); } -1? 0? 1? 2? 28、以下能正确读入字符串的程序段是____C___。 char *p;scanf("%s", p);? char str[10];scanf("%s", str);? char str[10], *p;p=str; scanf("%s", p);? char str[10], *p=str;scanf("%s", p[1]);? 29、若有定义:int i, x[3][4];,则不能将x[1][1]的值赋给变量i的语句是___B___。 i=x[1][1] ? i=*(*(x+1))? i=*(*(x+1)+1)? i=*(x[1]+1)? 30、下面程序的运行结果是____A___。 # include stdio.h # include string.h fun(char *s) { char t,*a,*z; a=s; z=s+strlen(s)-1; while(a++z--) { t=*a++; *a=*z--; *z=t;} } main() { char *p; p="a abdddfg? afcdebg? gbedcfa? gfedcba? 31、用来描述C程序中注释的是__C___ / /? ? * *? 32、对于"xyn102\'"字符串的长度是__B___ 7? 6? 12? 13? 33、已知:int x=10;执行语句x-=x+x;后x的值是__A___ -10? 10? -20? 20? 34、下列描述中,正确的是__A___ 所有的输入/输出都是通过调用库函数处理的? 所有的输入/输出都是通过输入/输出语句实现的? getchar和putchar可以省略#include? 在输入/输出格式中的*表示跳过数据的含义? 35、设x=10,y=5;z=15,执行下面一段程序后z的结果是__C___ if(xy) if(yz)x=y; else z=y; 7? 6? 5? 4? 36、执行下面程序段的结果是__D___ int x=0; do { printf(“%2d”,x--); }while(x); 打印出321? 打印出23? 不打印任何结果? 陷入死循环? 37、以下关于switch语句和break语句的描述正确的是__D___ 在switch语句中必须使用break语句? break语句只能用于switch语句体中? break语句只能用于循环语句中? 在switch语句中可以使用break语句? 38、与语句while(!x)等价的语句是__A___ while(x==0)? while(x!=0)? while(x!=1)? while(~x)? 39、下面的描述错误的是__C___ ?函数可以有多个形式参数? ?函数可以没有返回值? ?函数内可以嵌套定义函数? ?函数可以被其他函数调用? 40、 下面关于局部变量的描述中,错误的是__D___ ?函数的局部变量的有效范围只能在本函数? ?函数的形式参数也是局部变量? ?局部变量的名称不能和函数同名称? ?不同的函数中不能定义相同名称的局部变 有什么软件可以搜索大学C语言题目的啊?大学c语言搜题app。大学c语言搜题app原名叫做菜鸟学C语言是一款非常好用的学习c语言的手机软件 软件功能 1、选择题:按照考点分类的选择题习题,并有答案解析。 2、错题库:可自动加练习过程中错题加入收藏,以便反复练习。 3、上机操作题:300道上机操作题,程序填空题、程序修改题、程序设计题。 软件优势 1、选择题:按照考点分类的选择题习题,并有答案解析。 2、上级操作题:300道上机操作题,程序填空题、程序修改题、程序设计题。 3、最新押题:最新考试押题3套。 4、考点汇总:包含复习的考点。 5、错题库:可自动加练习过程中错题加入收藏,以便反复练习。 6、收藏夹:可在练习过程中自行收录题目到收藏夹,形成自己的小题库,针对性练习,提高通过率。 软件特色 1、随时随地都能够学习,而且还支持下载保存你学习内容离线继续学习。 2、同学们能够直接通过搜索引擎来查询寻找你感兴趣对你内容。 3、解答问题的办法非常多,可以选择通过拍照来答题,也可以选择输入题目来解答。
|