C语言考试试卷及答案

合集下载

C语言程序设计(附答案)

C语言程序设计(附答案)

C语言程序设计考试试卷(附答案)计算机程序设计课程56 学时 3.5 学分考试形式:闭卷一、选择题(15小题,每小题2分,共计30分)1.下面不正确的字符串常量是 A 。

A)'abc' B)"12'12" C)"0" D)" "2.以下正确的叙述是 DA)在C程序中,每行中只能写一条语句B)若a是实型变量,C程序中允许赋值a=10,因此实型变量中允许存放整型数C)在C程序中,无论是整数还是实数,都能被准确无误(精确)地表示D)在C程序中,%是只能用于整数运算的运算符3.已知字母A的ASCII码为十进制数65,且c2为字符型,则执行语句c2='A'十'6'一'3';后,c2中的值为 AA)D B)68 C)不确定的值 D)C4.sizeof(float)是 B :A)一个双精度型表达式 B)一个整型表达式C)一种函数调用 D)一个不合法的表达式5.以下说法正确的是 D :A)输入项可以为一实型常量,如scanf("%f",3.5);B)只有格式控制,没有输入项,也能进行正确输入,如scanf("a=%d,b=%d");C)当输入一个实型数据时,格式控制部分应规定小数点后的位数,如scanf("%4.2f",&f);D)当输入数据时,必须指明变量的地址,如scanf("%f",&f);6.已有如下定义和输入语句,若要求a1,a2,c1,c2的值分别为10,20,A,B,当从第一列开始输入数据时,正确的数据输入方式是 D (注:<CR>表示回车)。

int a1,a2; char c1,c2;scanf("%d%d",&a1,&a2); scanf("%c%c",&c1,&c2);A) 1020AB<CR> B)10 20<CR>AB<CR>C)10 20 AB<CR> D)10 20AB<CR>7.请阅读以下程序:void main(){int a=5,b=0,c=0;if(a=b+c) printf("***\n");e1se printf("$$$\n");以上程序 D :A)有语法错不能通过编译 B)可以通过编译但不能通过连接C)输出*** D)输出$$$8.下面程序段的运行结果是 C 。

C语言试卷及答案

C语言试卷及答案

一、选择题。

(每空2分,共计40分)本试卷包括第一卷和第二卷,答卷时间总共120分钟)第一卷第一部分:基础知识(20项,共40分)1.一个C语言程序是由(C )组成的。

A.主程序B.子程序C.函数D.过程2.转换说明符%x的输出形式是(C )。

A.十进制B.八进制C.十六进制D.二进制3.若a、b均为int型变量,且a=100,则关于循环语句for(b=100;a!=b;++a,++b)printf ( “------------“) ;的正确说法是(C )。

A.循环体只执行一次B.死循环C.循环体一次也不执行D.输出----------- 4.若x、y、z均为int 型变量,则执行下列语句后的z值为( A )。

x=1; y=2; z=3; z=(x>y)?z :y ; z = (z<y)?z:x;A.1 B.4 C.2 D.35.下面标识符中,合法的用户标识符为(D )。

A.P#Ad B.12a C.char D._int6.‘A’+ 3 的结果是( B )。

A.’A’B.’D’的ASCⅡ码C.65 D.3 7.语句char str[20];说明str是一个字符串,最多能表示( B )。

A.20个字符B.19个字符C.18个字符D.21个字符8.将int 型变量n转换成float型变量的方法是( B )。

A.float n B.(float)n C.float(n) D.21个字符9.以下不正确的描述是( C )。

A.使用while和do-while循环时,循环变量初始化的操作应在循环语句之前完成B.while循环是先判断表达式后执行循环体语句C.do-while和for循环均是先执行循环体语句,后判断表达式D.for、while、do-while循环中的循环体均可以由空语句构成10.在循环中使用break 语句的功能是( A )。

A.使程序的执行跳出break所在的那一重循环B.使程序执行结束C.跳出包含此break语句的所有循环D.终止本次循环,继续下次循环11.下面是一个初始化指针的语句:int *px = &a;其中指针变量的名字应该是(C )。

(完整版)C语言试卷及答案

(完整版)C语言试卷及答案

(完整版)C语言试卷及答案一、选择题(每题2分,共40分)1、C语言源程序的基本单位是( )A.程序行B.语句C.函数D.字符2、C语言规定:在一个源程序中,main函数的位置()。

A.必须在最开始B.必须在系统调用的库函数的后面C.可以任意D.必须在最后3、在下列字符列中,合法的标识符是( )A.p12&.aB.stud_100C. water$12D.88sum4、在C语言中,要求运算的数必须是整数的运算符是()A./B.!C.%D.= =5、设有语句 int a =3;则执行了语句a + = a - = a*a;后,变量a 的值是()A、3B、0C、9D、-126、设a=5,b=6,c=7,d=8,m=2,n=2,执行(m=a > b)&&(n=c>d)后n的值为()A、1B、2C、3D、47、执行下列程序时输入:1234567,程序的运行结果是()main(){int x,y;scanf(“%2d%*2c%1d”,&x,&y);printf(“%d\n”,x+y);}A.17B.46C.15D.98、下述程序的输出结果是() #includevoid main(){int x=-1,y=4;int k;k=++x<=0&&!(y--<=0);printf("%d,%d,%d",k,x,y);}A.0,0,3B.0,1,2,C.1,0,3,D.1,1,29、为了避免嵌套的if-else语句的二义性,C语言规定else总是与()组成配对关系。

A.缩排位置相同的ifB.在其之前未配对的ifC.在其之前未配对的最近的ifD.同一行上的if10、两次运行下面的程序,如果从键盘上分别输入6和4,则输出结果是()main(){int x;scanf(“%d“,&x);if(x++>5)printf(“%d”,x);else printf(“%d\n”,x--);}A.7和5B.6和3C.7和4D.6和411、若变量c为char类型,能正确判断出c为小写字母的表达式是( )A. 'a'<=c<= 'z'B. (c>= 'a')||(c<= 'z')C. ('a'<=c)and ('z'>=c)D. (c>= 'a')&&(c<= 'z')12、已知int x=10,y=20,z=30;以下语句执行后x,y,z的值是。

C语言程序设计考试试卷(附答案)

C语言程序设计考试试卷(附答案)

C语言程序设计考试试卷(附答案)C语言程序设计考试试卷(附答案)第一部分:选择题(共40题,每题2分,总分80分)1. 下列哪个关键字用于定义常量?A. constB. intC. staticD. volatile2. 在C语言中,以下哪个运算符用于将一个整数转换为浮点数?A. *B. /C. %D. +3. 下列代码的输出结果是什么?```c#include <stdio.h>void main() {int x = 2, y = 3;printf("%d", x++ * ++y);}```A. 7B. 8C. 9D. 104. C语言中,以下哪个运算符用于从一个整数中提取指定位数的值?A. <<B. >>C. |D. &5. 下列代码的输出结果是什么?```c#include <stdio.h>void main() {int arr[] = {1, 2, 3, 4, 5};int *ptr = arr + 2;printf("%d", *ptr);}```A. 1B. 2C. 3D. 4......40. 下列关于结构体的说法中,错误的是:A. 结构体可以包含不同类型的成员变量B. 结构体可以作为函数参数和返回值C. 结构体可以使用“->”来访问成员变量D. 结构体可以使用“sizeof()”函数获取其大小第二部分:填空题(共10题,每题4分,总分40分)1. 以下是有效的C语言标识符:___hello___2. 下列代码的运行结果是:___88___```c#include <stdio.h>void main() {int x = 8;printf("%d", x++);}```3. 在C语言中,以下是有效的声明:___int i, *p;___4. 下列代码的输出结果是:___10___```c#include <stdio.h>void main() {int arr[5] = {1, 2, 3, 4, 5};int *ptr = arr + 2;printf("%d", *(ptr + 2));}```5. 在C语言中,以下是合法的函数声明:___void fun(int x, float y);___......第三部分:编程题(共3题,每题20分,总分60分)1. 编写一个函数,接受一个整型数组和数组的长度作为参数,返回数组中的最大值。

C语言试卷(含答案)

C语言试卷(含答案)

一、单项选择题(每小题2分,共40分)1、sizeof(float)是()A. 一个双精度型表达式B. 一个整型表达式C. 一种函数调用D. 一个不合法的表达式2、设i是int型变量,f是float型变量,用下面的语句给这两个变量输入值: scanf("i=%d,f=%f",&i,&f);为了把100和分别赋给i和f,则正确的输入为()。

A. 100B. i=100,f=765.12C. 100<回车>D. x=100y=3、#include<>voidmain(){inta=3,b=2,c=1;intx=10,y=20;if(a<b)if(b!=0)if(!x)y=1;elseif(x)y=0;y=-1;printf("%d",y);}上面的C程序的输出结果是()。

A. 20B. 1C. 0D. -14、C语言中,while和do…while循环的主要区别是()。

A. do…while的循环体至少无条件执行一次B. while的循环控制条件比do…while的循环控制条件严格C. do…while允许从外部转到循环体内D. do…while的循环体不能是复合语句5、执行下面的C程序段后,输出结果是()。

inta=5;while(a--);printf("%d",a);A. 54321B. 4321C. 0D. -16、在C语言中,()是在所有函数外部声明的。

A. 全局变量B. 局部变量C. 形参D.实参7、分析下面的C程序:#include<>voidmain(){intnum=0;while(num<=2){num++;printf("%d",num);}}输出结果是()。

A. 123B. 012C. 23D. 128、下面的C语言代码段的输出结果是()。

c语言试卷和答案1

c语言试卷和答案1

s=s+f;
printf(“%.0f #”, s);
}
}
程序2
#include <stdio.h>
void main()
{ long fun (long number);
printf(“%ld\n”, fun(-974));
}
long fun(long number)
(5) 运算符 “+”不能作为单目运算符。
(6) 如果运算符 “*”和 “/”都是右结合的,这表达式10*6/5的值是10。
(7) s(s-a)(s-b)(s-c)是合法的C语言表达式。
(8) 表达式!!6的值是6。
(9) 表达式~(~2<<1)的值是5。
(28)str[k]=str[k]-‘A’+ ‘a’
4.(29)ss=s
(30)s-ss
四、程序阅读题
程序1 1 # 3 # 21 #
程序2 4 # 47 # 479 # -479
程序3 IF YOU FAIL TOP
五、程序设计题(略)
}while(month>=1 || month<=12);
B)do{ scanf(“%d”, &month);
}while(month>=1 && month<=12);
C)do{ scanf(“%d”, &month);
}while(month<1 || month>12);
else
b=3;
printf(“%d”, b);
A)3 B)2 C)1 D)0

c语言试卷及答案

c语言试卷及答案

C语言程序设计一、单项选择题1.以下叙述不正确的是______。

A)一个C源程序可由一个或多个函数组成B)一个C源程序一行内可以写多条语句C)C程序的基本组成单位是函数D)在C程序中,注释说明只能位于一条语句的后面2.以下正确的C语言标识符是 __ ____。

A)%x B)a+b C)a123; D)test!3.以下对’\t’描述正确的是______。

A) ’\t’是两个字符B) ’\t’是一个字符C) ’\t’是一个字符串D)以上都不是4.C语言中的简单数据类型有______。

A)整型、实型、逻辑型B) 整型、字符实型、逻辑型C)整型、实型、字符型D) 整型、实型、字符型、逻辑型5.在C语言中,数字029是一个______。

A)八进制数B)十六进制数C)十进制数D)以上都不是6.以下选项中,当为x大于的奇数时,值为0的表达式是______。

A)x%2==0 B) x%2==1 C)x/2 D) x%2!=0 7.已知char c=’d’;,则printf(“%c”,’A’+(‘e’-c));的输出结果是______。

A)a B)e C)B D)D8.已知int a=1,b=3,t; ,若要将a和b变量中的数据进行交换,则下面正确的是______。

A)a=b; b=a; B)a=t; t=b; b=a;C)t=a; a=b; b=t; D)t=a; b=t; b=a;9.已知int a=2,b; ,则执行语句b=1.0/a;后,b的值是__ ____。

A)0.5 B)0 C)1 D)210.已知int i=1,j;,则执行语句j=i++;后,j的值是______。

A)1 B)2 C)-2 D)-111.已知int x=2,y=1,z;,则执行语句z=!x && --y;后,y的值是______。

A)0 B)1 C)2 D)-112.执行以下程序段后,输出结果是______。

int x=10;x+=(x=8);printf(“%d\n”,x);A)10 B)8 C)18 D)1613.已知int b; char s[8];,则正确的输入语句是______。

c语言期末复习试卷

c语言期末复习试卷

复习题(一)1。

用高级语言编写的源程序必须通过___________程序翻译成二进制程序才能执行,这个二进制程序称为____________程序。

【答案】编译目标2。

下列符号串中,属于C语言合法标识符的是()①else ②a-2 ③_00 ④00【答案】③3.下列说法中,正确的是()①主函数名是由程序设计人员按照“标识符”的规则选取的②分号和回车符号都可以作为一个语句的结束符号③在程序清单的任何地方都可以插入一个或多个空格符号④程序的执行,总是从源程序清单的第1行开始【答案】③4.-12345E-3代表的十进制实数是________________________.【答案】—12.3455.设字符型变量ch中存放字符“A”,则执行“ch+++2”后,ch中的字符是________。

【答案】B6.设字符型变量ch1中存放的字符是“A",字符型变量ch2中存放的字符是“B”,则执行“!(ch1=’B')&&(ch2='C')”的运算后,变量ch2中的字符是_____________.【答案】B6-1.设整型变量m,n,a,b,c,d均为1,执行“(m=a〉b)&&(n=a>b)”后m,n 的值是()①0,0 ②0,l ③1,0 ④1 ,l【答案】②。

7.设整型变量x1和x2的值均为10,则表达式“x1/=x2-4”的值是_______________. 【答案】l8.在C语言中,如果某个关系表达式成立(真),则该关系表达式的值是____;如果某个逻辑表达式为假,则该逻辑表达式的值是_________.【答案】1 09.设有整型变量x,如果表达式“!x”值为0,则x的值为_________;如果表达式“!x"值为1,则x的值为___________。

【答案】非010.下列表达式中,不属于逗号表达式的是()①a=b,c ②a,b=c ③a=(b,c) ④a,(b=c)【答案】③11.在三种选择结构中,能用2个条件,控制从3个操作中选择一个操作执行的选择结构是______选择结构【答案】多分支12.在三种循环结构中,先执行循环操作内容(即循环体),后判断控制循环条件的循环结构是______循环结构。

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

2011-2012学年第一学期C语言程序设计A 课程A卷考试题共 4 页此第 1 页成绩一、单项选择题(每小题2分,共40分)1. C语言中合法的字符常量是()A.nB.’\n’C.110D.”n”2. 有以下程序:main( ){ char ch=’A’;printf(“ch(1)=%d,ch(2)=%c\n”,ch,ch+1); }程序运行后的输出结果是()A. ch(1)=65,ch(2)=AB. ch(1)=97,ch(2)=AC. ch(1)=65,ch(2)=BD. ch(1)=97,ch(2)=B3. 能表示a不能被2整除且a、b不相等,但a、b的和等于0的C语言逻辑表达式是()A. a==-b&&a%2==0B. a!=b&&a+b==0&&a%2C. !(a%2)&&a==-bD.a%2==0&&a+b==04. 以下程序段中语句” printf("i=%d,j=%d\n",i,j);”的执行次数是()int i, j;for(i=3;i ;i--)for(j=1;j<5;j++) printf("i=%d,j=%d\n",i,j);A. 12B. 20C. 15D. 245. 执行以下程序段后,x[2]的值是()int x[10]={1,2,3,4,5,6,7,8,9,10},i,j,t;i=0;j=9;while(i<j){ t=x[i]; x[i]=x[j]; x[j]=t;i++; j--; }A. 8B. 2C. 3D. 96. 判断字符串”abcd”和”ab cd”是否相等,应使用的语句是()A. if (“abcd”==”ab cd”)B. if (abcd==ab cd)C. if (strcmp(“abcd”,”ab cd”))D. if (strcmp(abcd,ab cd))7. 若有定义“int *p,*q,a=2,b;”,则以下正确的赋值语句组是()A. p=&a; *q=*p;B. *p=a;*q=b;C. p=&a;q=&b;*p=*q;D. p=&a;q=&b;*q=*p;8.以下说法错误的是()A. C程序中可以只包含一个main函数B. C程序由一个main函数和若干个其他函数构成C. C程序中可以没有main函数,但至少应包含一个其他函数D. C程序由函数组成,函数是构成程序的基本单位9. 以下选项中,能用作用户标识符的是()A. voidB. 8_8C. _0_D. unsigned10. 表达式:(int)((double)9/2)-(9)%2的值是()A. 0B. 3C. 4D. 511. 有以下程序:#include <stdio.h>void main(){ int a,b,c=200;a=c/10%9;b=!a||(a-2);printf("%d,%d\n",a,b); }程序运行后的输出结果是()A. 0,1B. 2,1C. 0,0D. 2,012. “==”代表C语言中的()A. 条件运算符B. 逻辑运算符C. 关系运算符D. 赋值运算符13. .若a是数值类型,则逻辑表达式(a==1)||(a!=1)的值是()A. 1B. 0C. 2D. 不知道a的值,不能确定14. 有以下程序:#include <stdio.h>void main(){ int a=12,b=20,t=18;if(a>b)t=a;a=b;b=t;printf("a=%d,b=%d,t=%d\n",a,b,t); }程序运行后的输出结果是()A. a=12,b=20,t=18B. a=20,b=18,t=18C. a=20,b=12,t=12D. a=20,b=18,t=1215. 执行以下程序后的输出是()#include <stdio.h>void main(){ int x,y;for(x=1,y=1;x<=20;x++){ if(y>=20) break;if(y%5==1){ y=y+5; continue; }y=y-1;}printf("x=%d,y=%d\n",x,y); }A. x=5,y=21B. x=4,y=21C. x=5,y=20D. x=4,y=2016. 凡是函数中未指定存储类别的局部变量其隐含的存储类别是()。

A. 自动(auto)B. 静态(static)C. 外部(extern)D. 寄存器(register)17. C语言中用于结构化程序设计的三种基本结构是()A.. 顺序结构、选择结构、循环结构B. if、switch、breakC. for、while、do-whileD. if、for、continue18. 在while(x)语句中的x与下面条件表达式等价的是:()A. x!=0B. x==1C. x!=1D. x==019. 若二维数组a有m行n列,则下面能够正确引用元素a[i][j]的为()A. *(a+j*n+i)B. *(a+i*n+j)C. *(*(a+i)+j)D. *(*a+i)+j20. 若有以下调用语句,则不正确的fun函数的函数原型是()void main(){ …int a[50],n;…fun(n, &a[9]);…}A. void fun(int m, int x[]);B. void fun(int s, int h[41]);C. void fun(int p, int *s);D. void fun(int n, int a);二、程序填空(每空2.5分,共20分)1. 下面程序的功能是将一字符串中的小写英文字母全部改成大写形式,然后输出。

请在横线上填上适当的程序代码,使它能输出正确的结果#include <stdio.h>void main (){ int i=0;char str[80];scanf("%s",str);while( ①){ if( ②) str[i]=str[i]-32;③}printf("%s\n",str);}2. 以下程序的功能是计算1!+2!+3!+…20!的值,请填空#include <stdio.h>long fun(int t){ long a=1;int n;for( n=1; ④n++) ⑤return a; }void main (){int n;long sum=0,s;for(n=1;n<=20;n++){ s=fun(n); ⑥}printf("sum=%ld\n",sum);}3. 以下程序的功能是用“辗转相除法”求两个正整数的最大公约数,请填空#include <stdio.h>void main(){ int r,a,b;scanf("%d%d",&a,&b);if(a<b){ ⑦}r=a%b;while(r!=0){ a=b;b=r; ⑧}printf("%d\n",b);}三、分析程序题(每空4分,共20分)1. 以下程序运行后的输出结果是①#include <stdio.h>void main (){ int t;for(t=1; t<=100; t++){ printf("%d ",t); if(t%2==1 && t%5==3) break; } }2. 以下程序的功能是②#include <stdio.h>void main(){ int n,s=0;scanf("%d",&n);while(n){ s++;n=n/10;}printf("%d",s);}3. 以下程序运行后,若输入5 5<回车>,则程序的输出结果是③#include <stdio.h>void main(){ int a,b;scanf("%d%d",&a,&b);if (a>6)if(a<10) a++;else a--;if (b>6){ if(b<10) b++; }else b--;printf("a=%d,b=%d\n",a,b);}4. 以下程序运行后的输出结果是④#include <stdio.h>void main(){ int a[10]={1,2,3,4,5,6,7,8,9,10};int i,*p,s=0;p=&a[0];for(i=0;i<10;i++)if((*(p+i))%3==0)s=s+*(p+i);printf("%d\n",s);}5. 以下程序运行后的输出结果是⑤#include <stdio.h>void main(){ int a[5]={1},i;for(i=1;i<5;i=i+2)a[i]=2*i;f or(i=0;i<5;i++)printf("%d ",a[i]);}四、程序设计(共20分)1. 请编写程序,输出1~1000之间能被11整除且个位数为5的所有整数,要求每个输出值之间有空格,输出结果后光标显示在下一行。

2. 利用递归函数计算Fibonacci数列的第n个数。

要求设计递归函数,在主函数main()中输入数据n,然后调用fib()函数求得第n个Fibonacci数,并输出结果。

fib(n)的递归公式如下:一、单项选择题(每小题2分,共40分)1 2 3 4 5 6 7 8 9 10 11 12 13 14 15B C B A A C D C C B D C A B A16 17 18 19 20A A A C D二、程序填空(每空2.5分,共20分)1、①str[i]!=’\0’ 、②str[i]>='a'&&str[i]<='z' 、③i++;2、④n<=t; 、⑤a=a*n; 、⑥sum=sum+s;3、⑦r=a; a=b; b=r; 、⑧r=a%b;三、分析程序题(每空4分,共20分)① 1 2 3 、②统计一个正整数的位数、③a=5,b=4 、④18 、⑤ 1 2 0 6 0四、程序设计(共20分)1. 请编写程序,输出1~1000之间能被11整除且个位数为5的所有整数,要求每个输出值之间有空格,输出结果后光标显示在下一行#include <stdio.h> ----------------------- 0.5分void main () ----------------------- 0.5分{ int a; ------------------------- 1分for(a=1;a<=1000;a++) ------------------------- 2分if(a%11==0 &&a%10==5) ------------------------- 2分printf("%d ",a); ------------------------- 1分printf("\n"); ------------------------- 1分}2. 利用递归函数计算Fibonacci数列的第n个数。

相关文档
最新文档