C语言考试考试复习题

合集下载

C语言复习60题

C语言复习60题

01计算机本身最擅长的能力是?A、推理B、想像C、重复D、分析正确答案: C、重复。

02 计算机(CPU)能够直截了当运行人类编写的程序A、√B、×正确答案: B、×、03编程语言是与计算机交谈的语言A、√B、×正确答案: B、×。

04 关于C语言,以下讲法错误的有:A、C语言是与Unix操作系统一同发展起来的B、C语言不能写图形界面的软件C、C语言一般是编译执行的D、C语言诞生于1970年代正确答案: B、C语言不能写图形界面的软件、06 IDE的中文翻译是什么?正确答案是:集成开发环境、07 给定:int a,b; 以下哪些scanf的使用是正确的?A、scanf("%d”,&a); scanf(”%d",&b);B、scanf(”%d %d”, &a, &b);C、scanf("%d, %d", &a,&b);D、scanf("%d%d”, a, b);正确答案: A、scanf("%d”,&a); scanf(”%d", &b);。

B、scanf(”%d%d", &a, &b);、C、scanf(”%d,%d”,&a,&b);、08 以下哪些是有效的变量名?A、mainB、4everC、monkey—kingD、__int正确答案:A、main。

D、__int。

09给定:inta,b; scanf("%d %d", &a, &b);则以下哪些输入方式是正确的?A、1 2B、1,2C、1(回车)2D、1、2正确答案:A、1 2。

C、1(回车)2、10给定以下代码段:inta,b=0;则a的初始值是0A、√B、×正确答案: B、×、11写出下式的运算结果:10/3、0*3 正确答案是:10、0。

12写出下式的运算结果:10/3*3、0正确答案是:9、0。

C语言考试复习题

C语言考试复习题

一、选择题1.在每个 C 程序中都一定包括有这样一个函数,该函数的函数名为。

A. mainB. MAINC. nameD. function2.在以下对于 C 语言的说明的表达中,不正确的选项是A.说明可用 "/*" 、"*/" 形式表示,也可用 "//" 形式表示。

B.编译器在编译一个程序时,将跳过说明,不对其进行办理C.编译器在编译一个程序时,可发现说明中的单词拼写错误D.程序中说明的多少不会影响所生成的可履行文件的长度3.以下表达不正确的选项是。

A.在 C 程序中,严格划分大小写字母B.一个 C 源程序有且仅有一个main 函数C.在 C 程序中,说明只好位于一条语句的后边D.一个 C 程序老是从 main 函数开始履行4.以下合法的表记符为A. abde+B. #KDJFC. 67KDJD. DK3_5.对于字符串和字符的关系正确的选项是A.“A”与’A’是同样的B.字符串是常量,字符是变量C.“A”与’A’是不一样的D.“A ”与“ A”是同样的6.下边对于语句的说法正确的选项是A.下边这两段程序的履行成效是一致的if (x>y){z=x; s=z*z;} else{z=y;s=1/(z*z);}if (x>y)z=x; s=z*z; elsez=y;s=1/(z*z);B.空语句是只有一个分号的语句,它其实什么也不干C.语句的构成不必定需要分号D.语句的书写对程序的运转不起作用,所以能够随意写都能够7.以下各表记符中,合法的用户表记符组为。

A.PAd,P#d,b-b,abc,_0123,ssipedB.cin,a10,CPP,float,del_word,signedC.void, max,hiy, <fr>,list ,*jerD.a,temp, _isw,INT ,keep,wind8.字符串“ ”E””的长度是。

C语言考试复习试题及参考答案

C语言考试复习试题及参考答案

中南大学现代远程教育课程考试复习试题及参考答案C语言程序设计一、单项选择题若以下各题所有库函数都可以合法使用,且变量定义如下:int m=5, i=3,j=2,*p, a=8,b=0;int arr[10]={0,1,2,3,4,5,6,7,8,9},td[ ][3]={1,2,3,4,5,6};float x=2.5,y=3.0;double z=0; long n=1;char c=’A’,ch[20]={’a’,’b’,’c’,’\0’,’d’,’\0’};struct student{ int num;char name[20];float score;struct student *next;}st1,st2,*ps;FILE *fp;1.若将3和10从键盘输入给变量a、x,输入语句为scanf(“a=%d,x=%f”,&a,&x);正确的键盘输入是(↙表回车):A a=3,x=10↙B 3,10↙C 3 10↙D 3,10.0↙2. 以下不是死循环的语句是:A for ( ;;y+=i++);B while(a) y+=i++ ;C do{ y+=i++}while (a>0);D for (b=0;(c=getchar()!=’\n’);)b++;3.若p=arr;正确的语句是:A *p=arr[10];B *p=arr[2*a];C p=arr[5];D p[i]=arr[0];4.若ps=&st1;则下面描述正确的是:A ps->num与st1->num等价。

B ps.num与st1.num等价。

C ps->num与num等价。

D ps->num与st1.num等价。

5.语句printf(“%d",a<i>j);的输出结果是:A 1B 0C 8 D都不对6.表达式 j/i+a%i+x 的值是:A 6B 4.5C 6.0D 5.57.表达式 b||a+i&&i<j 的值是:A 不确定B 0.0C 1D 08.若执行语句 a=b+=3*j+(int)x;则b的值为:A 1B 8C 0D 8.59. 若执行语句 a=b>j ?++i : i++;则a与i的值分别为:C x=D x=1a≥b 1 a<b11.将字符串“Wan Ming”输入数组ch中,正确的是:A、scanf(“%s”,ch)B、scanf(“%s”,&ch)C、ch=“Wan Ming”D、gets(ch)12. 执行语句printf(“%c”,td[1][0]+’A’)的结果是:A、AB、BC、DD、E13.下列关于main()函数说法正确的是A、C语言程序总是从main()开始执行B、C语言程序可以没有main()函数C、C语言程序可以包含多个main()函数,但必须在不同的模块中D、C语言程序中main()函数不能有形式参数14.下列关于函数说法正确的是A、C语言程序的函数内还可定义其他的函数B、C语言程序的函数内不可再定义其他的函数C、C语言程序的函数不能自己调用自己D、C语言程序中只有同一源文件中的函数才能有调用与被调用关系15.若#define squ(x) x*x 执行语句printf(“result=%d”,squ(i+j));结果为:A、result=36B、36C、result=11D、1116. 若#define squ(x) (x)*(x) 执行语句printf(“result=%d”,squ(i+j));结果为:A、result=36B、result=17C、result=11D、result=25 17.C语言对宏命令叙述正确的是A、宏替换占用运行时间B、编译程序对宏命令的处理是在对源程序中其它成分编译之前进行的C、宏命令的处理是在程序执行时进行的D、宏命令的处理是在程序连接时进行的18. 若执行语句a- =a+=a*=10;a的值为:A、0B、-10C、-100D、100 19.若执行语句p=arr; printf(“%d”,*(p+i));输出结果为A、0B、2C、3D、120.若执行printf(“%s”,ch);结果为:A、’abc’B、abcC、abcdD、abc\0d21.若对数组进行初始化:charcarr[ ]={’s’,’t’,’u’,’d’,’e’,’n’,’t’},barr[ ]=”student ”;则正确的是A、carr与barr长度相同B、carr比barr长C、carr与barr相同D、carr比barr短22.若有说明语句int (*p)[N];则p是A、N个指向整型变量的指针B、可指向有N个整型元素的一维数组的指针C、指向N个整型变量的函数指针D、有N个指针元素的一维指针数组23.若有说明语句int *f( );则函数f是A、f是一个指向整型变量的数组指针B、f返回一个整型数据C、f是一个指向整型变量的函数指针D、f 返回一个整型指针,指向函数本身24.若函数f定义如下:void f(char *d, char *s){ while ( *d++=*s++);}函数f的功能是:A、串比较B、串复制C、求串长D、串反向25.表达式100+a+’a’+x*z的值的数据类型为A、intB、floatC、doubleD、char26.若要动态申请一个double型内存单元,正确的语句是A、pd=double malloc(sizeof(double))B、pd=( *double)malloc(sizeof(double))C、pd=double * malloc(sizeof(double))D、pd=(double*)malloc(sizeof(double))27.若要从键盘上输入67892到变量n中,正确的语句是A、scanf(“%lf”,&n);B、scanf(“%ld ”,&n);C、scanf(“%lf ”,n);D、scanf(“%d ”,&n); 28.判断字符变量c是否不为小写英文字母的正确表达式是A、’a’<=c <=’z’B、c>= ‘a’ && c<=’z’C、’a’≤c ≤’z’D、c<’a’ || c>’z’ 29.下列每组表达式被执行后,结果完全等价的是A、!(b= =0)与!(!b )B、b=(a=4,4*5) 与 b=a=4,4*5C、float(i/j) 与 float i/jD、0<x<100 与 x>0 && x<10030.表达式(m&1)==(m%2)的值是A、 0B、无法确定C、 1D、以上都不对31.数学式ln2x+asin(60°)的C语言表达式是A、log(2*x)+a*sin(60)B、ln(2*x) +a*sin(60/180*3.14)C、ln(2*x) +a*sin(60)D、log(2*x)+a*sin(3.14*60/180)32. 要打开一个已经存在的非空文件file用于修改,则正确的语句是A、fopen(“file”,”r+”)B、fopen(“file”,”w”)C、fopen(“file”,”a+”)D、fopen(“file”,”r”)33. 若打开文件时发生错误,则fopen()函数的返回值是A、1B、0C、不确定D、没有返回值34. 调用函数fseek(fp,-25L,2),其操作结果是A、文件位置指针从文件开始处前移25字节B、文件位置指针从文件结尾处后移25字节C、文件位置指针从文件当前位置处前移25字节D、文件位置指针从文件当前位置处后移25字节35. 能正确表示a和b同时为正或同时为负的逻辑表达式是A、(a>=0||b>=0)&&(a<0||b<0)B、(a>=0&&b>=0)&&(a<0&&b<0)C、(a*b>0&&(a*b<=0)D、a*b>036. 若x=y=z=1;表达式(x--||++y)&&(z++)执行后,x,y,z的值分别为:A. 0,1,1B. 0,1,2C. 0,2,1D. 0,2,237.下列变量的初始化,不正确的是:A. int x,y=5;B. float x=y=3.5;C. char s[]=”a”;D. int a[][3]={{1},{},{0,9}};38. 可以代替while(x!=0)中的条件x!=0的是:A. xB. !xC. x==1D. x!=139.有关函数参数,下列说法不正确的是:A. 实参和形参是不同的变量;B. 实参可以将数据传给形参;C. 形参可以将数据传给实参;D. 实参和形参必须个数相等,类型一致。

C语言程序设计期末考试复习题及答案

C语言程序设计期末考试复习题及答案

C语言考试期末考试复习题及答案一、选择题(1) 一个C语言程序总是从(C )开始执行A) 书写顺序的第一个函数B) 书写顺序的第一条执行语句C) 主函数main()D) 不确定(2) 设int x=3,y=4,z=5,则下列表达式中的值为0的是 ( D )A) ‘x’&&’y’B) x||y+z&&y-z C) x<=yD) !((x<y)&&!z||1)(3) 执行以下程序段后,i的值是 ( C )int i=10;switch(i+1){ case 10: i++; break;case 11: ++i;case 12: ++i; break;default : i=i+1;}A) 11 B) 13 C) 12 D) 14(4) 语句while(!e);中的条件!e等价于 ( A )A) e==0 B)e!=1 C) e!=0 D) 运行时出错(5) 用 int a[4]={1,2}; 对数组进行初始化后,数组元素a[3]的值是 ( B )A) 随机值B) 0 C) 1 D) F(6) 在执行char str[10]=“china\0”; strlen(str)的结果是 ( A )A)5 B) 6 D) 7 D 9(7) 若有定义,char *p=”computer”; 则语句printf(“%c”,*(p+2))运行结果是 ( B )A) 随机值B) m C)o D) omputer(8) 在以下函数调用语句中fun1(x,10,(x,10),fun2(y,10,(y,10)));函数fun1参数的个数为 ( B )A) 8 B) 4C) 5 D) 编译出错(9) 在说明一个结构体变量时系统分配给它的存储空间是( D )A)该结构体中第一个成员变量所需存储空间 B) 该结构体中最后一个成员变量所需存储空间C)该结构体中占用最大存储空间的成员变量所需存储空间D) 该结构体中所有成员变量所需存储空间的总和1. 用C语言编写的代码程序( B )A)可立即执行 B)是一个源程序 C)经过编译即可执行 D)经过编译解释才能执行2. C语言中用于结构化程序设计的三种基本结构是( A )A)顺序结构、选择结构、循环结构 B)if、switch、break C)for、while、do-while D)if、for、continue3. 以下定义语句中正确的是( C )A)char a='A'b='B'; float a=b=10.0;C)int a=10,*b=&a; D)float *a,b=&a;4.下列选项中,不能用作标识符的是( D )A)_1234_ B)_1_2 C) int_2_ D)2_int_5.在函数调用过程中,如果函数funA调用了函数 funB,函数funB又调用了函数funA,则( B )A)称为函数的直接递归调用 B)称为函数的间接递归调用C)称为函数的循环调用 D)C语言中不允许这样的递归调用6.以下叙述中正确的是 ( A )A)局部变量说明为static存储类,其生存期将得到延长B)全局变量说明为static存储类,其作用域将被扩大C)任何存储类的变量在未赋初值时,其值都是不确定的D)形参可以使用的存储类说明符与局部变量完全相同7.若变量已正确定义,要求程序段完成求5!的计算,不能完成此操作的程序段是( B)A)for(i=1,p=1;i<=5;i++) p*=i;B)for(i=1;i<=5;i++){ p=1; p*=i;}C)i=1;p=1;while(i<=5){p*=i; i++;}D)i=1;p=1;do{p*=i; i++; }while(i<=5);8.有以下程序(a)main(){ char a='a',b;printf("%c,",++a);printf("%c\n",b=a++);}程序运行后的输出结果是a)b,b B)b,c C)a,b D)a,c9.有以下函数定义:(c)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(n,x)10.已定义c为字符型变量,则下列语句中正确的是(c)A)c='97'; B)c="97"; C)c=97; D)c="a";11.以下能正确定义一维数组的选项是(b)A)int num[]; B) #define N 100 C)int num[0..100]; D) int N=100;int num[N]; int num[N];12.以下能正确定义数组并正确赋初值的语句是(d)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}};13.有以下程序(a)main(){ int i;for (i=0; i<3; i++)switch (i){ case 1: printf("%d ", i);case 2: printf("%d ", i);default : printf("%d ", i); }}执行后输出结果是A)011122 B)012 C)012020 D)12014.有以下程序(d)main(){ int p[7]={11,13,14,15,16,17,18}, i=0,k=0;while(i<7 && p[i]%2) { k =k+ p[i]; i++; }printf("%d\n", k);}执行后输出结果是A)58 B)56 C)45 D)2415.以下叙述中正确的是(c)A)C语言比其他语言高级 B)C语言可以不用编译就能被计算机识别执行C)C语言以接近英语国家的自然语言和数学语言作为语言的表达形式D)C语言出现的最晚,具有其他语言的一切优点16.下列叙述中正确的是(d)A)C语言中既有逻辑类型也有集合类型B)C语言中没有逻辑类型但有集合类型C)C语言中有逻辑类型但没有集合类型D)C语言中既没有逻辑类型也没有集合类型17.以下叙述中正确的是(a)A)C程序中注释部分可以出现在程序中任意合适的地方B)花括号"{"和"}"只能作为函数体的定界符C)构成C程序的基本单位是函数,所有函数名都可以由用户命名D)分号是C语句之间的分隔符,不是语句的一部分二)阅读程序,写出程序运行结果(1) #include<stdio.h>main(){ char ch=’A’;ch=(ch>=’A’&& ch<=’Z’)?(ch+32):ch;printf(“%c”,ch);}程序的运行结果是:(2) #include<stdio.h>main( ){ int sum=0,i=11;while (i<=10){sum=sum+i;i++;}printf(“%d”,sum);}程序的运行结果是:(3) #include<stdio.h>main(){ char str[ ]=”1a2b3c”;int i;for(i=0;str[i]!=’\0’;i++)if (str[i]>=’0’ && str[i]<=’9’) printf(“%c”,str[i]);}程序的运行结果是:(4) main(){ int a,b;a=5;b=8;p(a,b);p(a+b,a);}p(int x,int y){y=x+y;printf(“%d %d”,x,y);}程序的运行结果是:(5) #include<stdio.h>void main(){ int a[3][3]={{1,2,3},{4,5,6},{7,8,9}};int j,s=1;for(j=0;j<=2;j++)s=s*a[j][j];printf("%d",s);}程序的运行结果是:Key: (1) a (2) 0 (3) 123 (4) 5 13 13 18 (5) 45 三)改错题(每个程序只有一个错误,填入错误语句所在的行号以及修改后的语句)(1)下段程序的功能是先输入一个整数,然后将输入的整数输出。

c语言期末复习试题附答案

c语言期末复习试题附答案

试卷编号:1120所属语言:C语言试卷方案:C语言期末考试试卷总分:100分共有题型:4种一、单项选择共30题(共计60分)第1题(分)设有定义:int k=0;,以下选项的四个表达式中与其他三个表达式的值不相同的是(A ).A:k++B:k+=1C:++kD:k+1第2题(分)已知int i=5,执行语句i+=++i后,i的值是(C).A:10B:llC:12D:A、B、C都不对第3题(分)以下程序的功能是:给r输入数据后,计算半径为r的圆面积s.程序在编译时出错. ttinclude <>void main()/* Beginning */{ int r;float s;scanf (〃%d〃,&r);s=p*r*r; printf (〃s=%f\n〃,s);出错的原因是(D).A:注释语句书写位置错误B:存放圆半径的变量r不应该定义为整型C:输出语句中格式描述符非法D:计算圆面积的赋值语句中使用了非法变量第4题(分)〃\\\〃 ABC\〃 \\〃的长度是(B ).A:llB:7C:5D:3第5题(分)已知int j, i=l执行语句j=-i++;后,j的值是(C ).A:1B:2串中的内容为“abcdefg”时,c 所指数组中的内容应该为 “lg2f3e4dcba” 。

*/ttinclude <>#include <>#include <>void fun ( char char *b, char *c )int i , j;char ch;i = 0;j 二 strlen(b)-l;/**********FOUND**********/ch = b [ i];b[j] = ch; i++; j —;/**********FOUND**********/while ( *a &&*b )//此处&&改为| | (逻辑或)if ()*c =*a;c++;/**********FOUND**********/a+;)if ( *b )*c 二*b; c++;b++;*c = 0;main()char sl[100],s2[100],t[200];clrscr ();printf (,z \nEnter si string : 〃);scanf (〃如〃,si);printf (,z \nEnter s2 string : 〃);scanf (〃%s 〃, s2);fun( si, s2, t );printf (/z \nThe result is : %s\n 〃,t );i j四、程序设计共1题(共计20分)第1题(分)/*【程序设计】功能:判断一个整数w 的各位数字平方之和能否被5整除, 可以被5整除则返回1,否则返回0。

C语言考试复习题

C语言考试复习题

C语言复习题一、单项选择题(每题3分)1.以下变量声明正确的是(D)A: int i = 0;int i = 5; B: int i = 0;j = 5;C: int i = 0,int j = 5;D: int i = 0;{ int i = 5;}2.下面代码的输出结果为(B)int main(void){int a,b,c,d;a=10;b=a++;c=++a;d=10*a++;printf("b,c,d:%d,%d,%d",b,c,d);return 0;}A: 10,11,110 B: 10,12,120 C: 11,12,120 D: 11,11,110 3.下面代码运行后m的结果为(C)int m = 6;m = (m%3*4)?m/4:--m;printf("%d",m);A:1 B:2 C:5 D:64.下面代码运行后输出'*'的个数为(A)for (int j = 5; j<=10; ++j) {for (int i =0; i<10; i++) {printf("*");}}A:60 B:50 C:15 D:165.以下代码输出的结果为(D)int m = 0;for (int i = 0; i<5; i++) {switch (i) {case 0:m++;case 1:m++;break;case 2:m++;continue;case 3:m++;break;default:m++;continue;}m++;}printf("%d",m);A:12 B:11 C:10 D:96.以下代码运行的结果为(B)int i = 1,m = 1;for (; i<10; i++) {if (i/2 == 2 || i%4==0) {for (int j = 4; j < i; j++) {m+=j;}}}printf("m = %d",m);A: 26 B: 27 C: 28 D: 297. break关键字在哪一种语法结构中不能使用? (C)A: for语句B: switch语句C: if语句D: D. while语句8.下列数组说明中,正确的(C)A:int array[][]={0}; B:int array[3][]={0};C:int array[][4]={0};D:int array[][][5]={0};9.设变量定义为int x, *p=&x;则&(*p)相当于(C)A: *(&x) B: *p C: p D: x 10.下列选项中正确的语句组是(D)。

c语言编程题考试题库及答案

c语言编程题考试题库及答案

c语言编程题考试题库及答案一、单项选择题1. 在C语言中,以下哪个选项是正确的整型常量?A. 0x12LB. 0x12.5C. 0x12.0D. 0x12F答案:A2. C语言中,以下哪个选项是正确的字符串字面量?A. "Hello, World"B. 'Hello, World'C. "Hello, World\n"D. "Hello, World\"答案:C3. 在C语言中,以下哪个选项是正确的函数声明?A. int add(int a, int b);B. int add(int, int);C. int add();D. int add(a, b);答案:A4. C语言中,以下哪个选项是正确的数组声明?A. int a[5] = {1, 2, 3, 4, 5};B. int a[] = {1, 2, 3, 4, 5};C. int a[5] = {1, 2, 3};D. int a = {1, 2, 3, 4, 5};答案:B5. 在C语言中,以下哪个选项是正确的指针声明?A. int *p = 0;B. int *p = "Hello";C. int *p = 5;D. int p = 0;答案:A二、填空题1. 在C语言中,表示逻辑“与”操作的运算符是 ________ 。

答案:&&2. C语言中,表示逻辑“或”操作的运算符是 ________ 。

答案:||3. 在C语言中,表示逻辑“非”操作的运算符是 ________ 。

答案:!4. C语言中,表示赋值操作的运算符是 ________ 。

答案:=5. 在C语言中,表示取地址操作的运算符是 ________ 。

答案:&三、程序阅读题阅读以下C语言程序段,并回答问题。

```c#include <stdio.h>int main() {int a = 10, b = 20, c;c = a + b;printf("%d", c);return 0;}```1. 程序的输出结果是什么?答案:302. 如果将`c = a + b;`改为`c = a * b;`,程序的输出结果是什么?答案:200四、编程题1. 编写一个C语言程序,实现两个整数的加法运算,并输出结果。

C语言期末复习

C语言期末复习

期末考试复习:第一、考试题型与分值:考试时间:90分钟考试题型:单选题:15*2’=30填空题:10*1’=10程序阅读题:4*5’=20程序填空题:2小题,每空5分,共25分程序编写题;2题,共计15分第二部分:考试题型一、选择题:语句if (!i ) i=i+1 else i=i-1; 中的条件表达式 !i 等价于()。

A)i==0B)i!=1 C)i!=0 D)-i二、填空题若有定义:int a;表达式(a=2*5,a*2,a+7),a+6的值是______________。

三、程序阅读题1.以下程序的输出结果是___________。

#include <stdio>Void main ( ){int i=011,j=11,k=0x11;printf (“%d,%d,%d\n”,i,j,k); 9 11 17}2. 以下程序的输出结果是___________。

#include <stdio.h>Void main(){ int I;int a[4][4]={{11, ,45,12, 13},{14,78, 15, 16}, {17, ,96,18, 19 }{12,89,75,65}};for(I=0 ; I<4; I++)printf(“%3d”,a[I][I]);printf(“\n”);for(I=0;I<4;I++)printf(“%3d”,a[I][3-I]);printf(“\n”);}四、程序填空题下面程序是求出圆的周长,并输出结果,请对下面程序填空。

#include<stdio.h>#define PI 3.1416void main(){float r,s;printf(“Enter a number_r:”);__________________;s=2*PI*r;printf(“s=%f”, __ ____);}五、编程题:第三部分:复习要点1、书本上的每个项目的选择题()。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

C语言考试考试复习题一、判断下列问题描述及语句正确与否,正确的打“√”。

1.C的关键字都就是小写的。

( √)2、C语言规定:在一个源程序中,main函数的位置必须在最开始。

( × )3.一个复合语句就是作为一个语句处理的且在逻辑上相互关联的一组语句。

( √)4、假设所有变量均为整型,则表达式(a=2,b=5,b++,a+b)的值就是8。

( √ )5、凡就是函数中未指定存储类别的局部变量,其隐含的存储类别为静态存储。

( × )6.# define PI=3、14159 ( ×)7、C语言中规定函数的返回值的类型就是由return语句中的表达式类型所决定。

( ×)8.局部变量在进入代码块时生成,退出代码块时消失。

( √)9、在C语言中对文件操作必须先关闭当前文件,然后再打开一个新文件。

( ×)10.int a=123456;( ×)11、C语言程序的基本单位就是语句。

( ×)12.函数可以嵌套定义,也可嵌套调用。

( ×)13. switch与if不同,switch只能测试就是否相等,而if中还能测试关系与逻辑表达式。

( √)14.break与continue语句都可用于选择结构与循环结构中。

( ×)二、单项选择题:1、假设已定义char a[10]与char *p=a, 下面的赋值语句中,正确的就是:( C )A) a[10]=”Turbo C”; B) a=”Turbo C”;C) *p=”Turbo C”; D) p=”Turbo C”;2.C语言中基本数据类型包括( B)。

A、整型、实型、逻辑型B、整型、实型、字符型C、整型、字符型、逻辑型D、整型、实型、逻辑型、实型3、下面关于运算符优先顺序的描述中正确的就是:( C )A)关系运算符< 算术运算符< 赋值运算符< 逻辑与运算符B)逻辑运算符< 关系运算符< 算术运算符< 赋值运算符C)赋值运算符< 逻辑与运算符< 关系运算符< 算术运算符D)算术运算符< 关系运算符< 赋值运算符< 逻辑与运算符4.已知int i,a;执行语句“i=(a=2*3,a*5),a+6;”后,变量a的值就是(A )。

A. 6 B、12 C、30 D、365、以下正确的描述就是。

( B )A)continue语句的作用就是结束整个循环的执行B)只能在循环体内与switch语句体内使用break语句C)在循环体内使用break语句或continue语句的作用相同D)从多层循环嵌套中退出时, 只能使用goto语句6.C语言中规定函数的返回值的类型就是由( D )。

A.return语句中的表达式类型所决定B.调用该函数时的主调用函数类型所决定C.调用该函数时系统临时决定D.在定义该函数时所指定的函数类型所决定7、用8位无符号二进制数能表示的最大十进制数为( C )A) 127 B) 128 C) 255 D)2568.不能进行++与--运算的数据类型就是( B)。

A、指针B、doubleC、intD、long9、下列叙述中正确的就是:( D )A)C语言中既有逻辑类型也有集合类型B)C语言中没有逻辑类型但有集合类型C)C语言中有逻辑类型但没有集合类型D) C语言中既没有逻辑类型也没有集合类型10.为了判断两个字符串s1与s2就是否相等,应当使用( D)。

A、if(s1==s2)B、if(s1=s2)C、if(strcpy(s1,s2)) D if (strcmp(s1,s2))11、以下对C语言函数的有关描述中,正确的就是:( A )A)调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参B)函数既可以嵌套定义又可以递归调用C)函数必须有返回值,否则不能使用函数D) 程序中有调用关系的所有函数必须放在同一个源程序文件中12.若有以下说明与语句:struct stu{int no;char *name;}student, *p=&student则以下引用方法不正确的就是( D )。

A、student、noB、(*p)、noC、p->noD、student->no13、在C语言中,不正确的int类型的常数就是:( A )A) 32768 B)0 C) 037 D) 0xaf14.以下不就是死循环的语句为( D )。

A.for(; ; x+=k);B.while(1){x++};C.for(k=10; ;k――)sum+=k;D.for(;(c=getchar())!=’\n’;)printf(“%c”,c);15、以下叙述中不正确的就是:( D )A)在不同的函数中可以使用相同名字的变量B)函数中的形式参数就是局部变量C)在一个函数内定义的变量只在本函数范围内有效D)在一个函数内的复合语句中定义的变量在本函数范围内有效16.以下错误的描述就是( D )。

A、不同的函数中可以使用相同的变量名B、形式参数就是局部变量C、一个函数内部定义的变量只能在本函数范围内有效D、在一个函数内部的复合语句中定义的变量可以在本函数范围内有效17、以下说法中正确的就是:( D )A)#define与printf都就是C语句B)#define就是C语句,而printf不就是C)printf就是C语句,但#define不就是D)#define与printf都不就是C语句18.若用数组名作为函数调用时实参,则实际上传递给形参的就是( A )。

A.数组首地址B、数组的第一个元素值C.数组中全部元素的值D、数组元素的个数19、若有以下定义与语句:double r=99,*p=&r *p=r;则以下正确的叙述就是:( B )A)以下两处的*p含义相同,都说明给指针变量p赋值B)在“double r=99,*p=&r”中,把r的地址赋值给了p所指的存储单元C)语句“*p=r;”把变量r的地址值赋给指针变量pD)语句“*p=r;”取变量r的值放回r中20.已知int a,*p=&a则为了得到变量a的值,下列错误的表达式就是( A )。

A. *&pB.*pC. p[0]D.*&a三、填空题:1、下面程序的功能就是:输入一行字符,统计其中有多少个单词,单词之间用空格分开。

请填空完成。

# includemain(){ char str[81];int I,num=0,word=0;char c;gats(str);for(I=0; c=str[I]!=‘\0’;I++)if(c==‘’) word=0;else if word==0{ word=1;num++;}printf(“There are %d word in line、 \n”,num);}2.已知int *p,a;则语句p=&a中的运算符&的含义就是将变量a的地址存入指针变量p中。

3、下面程序的功能就是:用选择排序法对数组中10个数据按由小到大排序。

请填空完成。

void sort(int a[],int n){int I,j,k,t;for(I=0;I<n-1;i++)< p="">{ k=I;for(j=I+1;j<n;j++)< p="">if(a[j]< p="">if( k!=I){t=a[k];a[k]=a[I];a[I]=t;}}}main(){ int b[10],I;printf(“enter the array\n”);for(I=0;I<10;I++)scanf(“%d”、&b[I]);sort(b,10);printf(“the sorted array: \n”);for(I=0;I<10;I++)printf(“%d”,b[I]);printf(“\n”);}4.凡在函数体内没有明显存储类别说明的变量就是自动变量。

5、判断m就是否就是素数#includemain(){int m,i,k;scanf(“%d”,&m);k=sqrt(m);for(i=2;i<=k;i++)if(m%i==0) break;if(i>=k+1) printf(“%d is a prime number\n”,m);else printf(“%d is not a prime number\n”,m);}6.已知: struct{ int k;char c;float a;}test; 则sizeof(test)的值就是7 。

7、假设当年产值为100,工业产值的增长率分别为6%、8%、10%、12%时,求工业产值分别经过多少年可实现翻番。

请填空完成。

main(){ int y[4],I;float s[4]={100,100,100,100},c[4]={0、06,0、08,0、10,0、12};clrscr();for(i=0;i<4;i++){ y[i]=0;while( s[i]<=200 ){ s[i]=s[i]*(1+c[i]);y[i]++;}printf("\ny=%d\ts=%、2f\tc=%、2f",y[i],s[i],c[i]);}}8.已知i=3,执行语句k=(i++)+(i++)+(i++)后,k的值为9。

9.当a=3,b=2,c=1时,表达式f=a>b>c的值就是0。

10.设有以下程序:# includemain( ){char c;while((c=getchar( )) !=’?’) putchar(--c);}程序运行时,如果从键盘上输入:Y?N?↙,则输出的结果就是X。

11、当接收用户输入的含空格的字符串时,应使用的函数就是gets() 。

12、在定义“int a[5][6]”后,第十一个元素就是a[1][4]。

13.用以下语句调用库函数malloc,使字符指针st指向具有11个字节的动态存储空间,请填空st=(char*) *maclloc(11) 。

14.把名为file的文件拷贝到新文件new、dat中,请填空将程序补充完整、#includemain(){int c;FILE *fp2, *fp2;p1=fopen(“file”,r );p2=fopen(“new、dat”,w );c=fgetc(p1) ;while (c!=EOF){fputc(c,p2);c=fgetc(p1);}fclose(p1);fclose(p2);}}四、读程序,写出运行结果:1、main(){int x=10,y=10,I;for(I=0;I>8;y=++I)printf(“%d %d”,x--,y);}运行结果:10 10 9 12、main(){ int m=37,n=13;while(m!=n){ while(m>n)m=m-n;while(n>m)n-=m;}printf(“m=%d\n”,m);}运行结果:m=13、main(){ int x=9;for(;x>0;x--){ if(x%3==0) { printf(“%d”, --x); continue; }}}运行结果:8524、main(){ int a=7,b=2;float x=2、5,y=4、7,z;z=x+a%3*(int)(x+y)%2/4;printf(“%f\n”,z);z= (a+b)/2+(int)x%(int)y;printf(“%f”,z);}运行结果:2、5000006、0000005.main(){ int a=5,b=4,x,y;x=a++*a++*a++;printf(“a=%d,x=%d\n”,a,x); y=――b*――b*――b;printf(“b=%d,y=%d\n”,b,y); }运行结果:a=8,x=125b=1,y=1<></n;j++)<></n-1;i++)<>。

相关文档
最新文档