收藏 分销(赏)

C语言试题与答案.doc

上传人:天**** 文档编号:4373919 上传时间:2024-09-14 格式:DOC 页数:26 大小:120KB 下载积分:10 金币
下载 相关 举报
C语言试题与答案.doc_第1页
第1页 / 共26页
C语言试题与答案.doc_第2页
第2页 / 共26页


点击查看更多>>
资源描述
大学C语言考试题库 第1章 C语言概述习题 1、 单项选择题 (1) C 语言就是在 B 语言得基础上产生得。 A、 A B、 B C、 D D、 E (2) 在 C 语言中,每个语句必须以 D 结束。 A、 回车符 B、 冒号 C、 逗号 D、 分号 (3) 标识符与关键字间,要用 C 隔开。 A、 回车符 B、 冒号 C、 空格 D、 分号 (4) 用 C 语言编写得源文件经过编译,若没有产生编译错误,则系统将( B )。 A、 生成可执行目标文件 B、 生成目标文件 C、 输出运行结果 D、自动保存源文件 (5) 下列说法中正确得就是( B )。 A、 由于 C 源程序就是高级语言程序,因此一定要在 TC 软件中输入 B、 由 C 源程序就是字符流组成,因此可以作为文本文件在任何文本编辑得软件中输入 C、 由于C 程序就是高级语言程序,因此输入后即可执行 D、 由于 C 程序就是高级语言程序,因此它由命令组成 (6) 下列说法中正确得就是( A )。 A、 C 语言程序由主函数与 0 个或多个函数组成 B、 C 语言程序由主程序与子程序组成 C、 C 语言程序由子程序组成 D、 C 语言程序由过程组成 (7) 下列说法中错误得就是( D )。 A、 主函数可以分为两个部分:主函数说明部分与主函数体 B、 主函数可以调用任何非主函数得其她函数 C、 任何非主函数可以调用其她任何非主函数 D、 程序可以从任何非主函数开始执行 2、 填空题 (1) C 语言只有 32 个关键字与 9 种控制语句。 (2) C 语言就是一种“ 中级语言 ”,既具有 高级语言 得特点又具有 低级语言 得特点;既适合于开发系统软件又适合于编写应用程序。 (3) 每个源程序有且只有一个 主 函数,系统总就是从该函数开始执行C语言程序。 (4) 在 C 语言程序中允许出现得字符集就是 ASCII码字符集 。 (5) C 语言得程序中有特殊含义得英语单词称为 保留字 。 (6) C 语言标识符得长度就是前 8 位有效。 (7) C 语言中,标识符得定义规则就是 以字母或下划线为开头 。 (8) C 语言程序得注释可以出现在程序中得任何地方,它总就是以 /* 符号作为开始标记,以 */ 符号作为结束标记。 第2章 数据类型运算符与表达式习题 1、 单项选择题 (1) 以下选项中,正确得 C 语言整型常量就是 D 。 A、 32L B、 510000 C、 1、00 D、 567 (2) 以下选项中, D 就是不正确得 C 语言字符型常量。 A、 'a' B、 '\x41' C、 '\101' D、 "a" (3) 在 C 语言中,字符型数据在计算机内存中,以字符得 C 形式存储。 A、 原码 B、 反码 C、 ASCII 码 D、 BCD码 (4) 字符串得结束标志就是 C 。 A、 0 B、 '0' C、 '\0' D、 "0" (5) 算术运算符、赋值运算符与关系运算符得运算优先级按从高到低依次为 B 。 A、 算术运算、赋值运算、关系运算 B、 算术运算、关系运算、赋值运算 C、 关系运算、赋值运算、算术运算 D、 关系运算、算术运算、赋值运算 (6) 逻辑运算符中,运算优先级按从高到低依次为 D 。 A、 &&,!,|| B、 ||,&&,! C、 &&,||,! D、 !,&&,|| (7) 表达式!x||a==b 等效于 D 。 A、 !((x||a)==b) B、 !(x||y)==b C、 !(x||(a==b)) D、 (!x)||(a==b) (8) 设整型变量 m,n,a,b,c,d 均为1,执行 (m=a>b)&&(n=c>d)后, m,n 得值就是 A 。 A、 0,0 B、 0,1 C、 1,0 D、 1,1 (9) int b=0,x=1;执行语句 if(x++) b=x+1; 后,x,b 得值依次为 A 。 A、 2,3 B、 2,0 C、 3,0 D、 3,2 (10) 设有语句 int a=3;,则执行了语句 a+=a=a*=a; 后,变量 a 得值就是 B 。 A、 3 B、 0 C、 9 D、 12 (11) 在以下一组运算符中,优先级最低得运算符就是 D 。 A、 * B、 != C、 + D、 = (12) 设整型变量 i 值为2,表达式(++i)+(++i)+(++i)得结果就是 B 。 A、 6 B、 12 C、 15 D、 表达式出错 (13) 若已定义 x 与 y为double 类型,则表达式 x=1,y=x+3/2 得值就是 C 。 A、 1 B、 2 C、 2、0 D、 2、5 (14) sizeof (double)得结果值就是 A 。 A、 8 B、 4 C、 2 D、 出错 (15) 设a=1,b=2,c=3,d=4,则表达式:a<b? a : c<d? a : d得结果为 D 。 A、 4 B、 3 C、 2 D、 1 (16) 设a 为整型变量,不能正确表达数学关系:10<a<15得 C 语言表达式就是 A 。 A、 10<a<15 B、 a= =11|| a= =12 || a= =13 || a= =14 C、 a>10 && a<15 D、 !(a<=10) && !(a>=15) (17) 设 f就是实型变量,下列表达式中不就是逗号表达式得就是 D 。 A、 f= 3、2, 1、0 B、 f>0, f<10 C、 f=2、0, f>0 D、 f=(3、2, 1、0) (18) 设ch就是 char型变量,其值为 'A',则下面表达式得值就是 B 。 ch=(ch>='A'&& ch<='Z')? (ch+32):ch A、 A B、 a C、 Z D、 Z (19) 以下运算符中,结合性与其她运算符不同得就是 A 。 A、 ++ B、 % C、 / D、 + (20) 以下用户标识符中,合法得就是 B 。 A、 int B、 nit C、 123 D、 a+b (21) C 语言中,要求运算对象只能为整数得运算符就是 % 。 A、 % B、 / C、 > D、 * (22) PC 机中,'\n'在内存占用得字节数就是 A 。 A、 1 B、 2 C、 3 D、 4 (23) 字符串"ABC"在内存占用得字节数就是 B 。 A、 3 B、 4 C、 6 D、 8 (24) 要为字符型变量 a赋初值,下列语句中哪一个就是正确得 B 。 A、 char a="3"; B、 char a=’3’; C、 char a=%; D、 char a=*; (25)下列不正确得转义字符就是 C 。 A、 \\ B、 \' C、 074 D、 \0 2、 填空题 (1) C 语言中得逻辑值“真”就是用 非0 表示得,逻辑值“假”就是用 0 表示得。 (2) 符号常量得定义方法就是 #define N 10 。 (3) 无符号基本整型得数据类型符为 unsigned int ,双精度实型数据类型符为 double ,字符型数据类型符为 char 。 (4) 设 c='w',a=1,b=2,d=5, 则表达式 'x'+1>c, 'y'!=c+2, a5*b<=d+1, b==a=2得值分别 为 1 、 0 、 1 、 表达式错误 。 (5) 设 float x=2、5,y=4、7; int a=7;,表达式 x+a%3*(int)(x+y)%2/4得值为 2、5 。 (6) 判断变量 a、b 得值均不为 0 得逻辑表达式为 (a!=0)&&(b!=0) 。 (7) 求解赋值表达式 a=(b=10)%(c=6),表达式值、a、b、c 得值依次为 4,4,10,6 。 (8) 求解逗号表达式 x=a=3,6*a 后,表达式值、x、a 得值依次为 18,3,3 。 (9) 数学式a/(b*c)得 C语言表达式 a/(b*c) 。 第3章 顺序结构程序设计习题 1、 选择题 (1) printf("f=%3、2f%%",3、478);得输出结果就是 A 。 A、 f=3、48% B、 f=3、5% C、 f=3、48% % D、 f=347、8% (2) printf("%c,%d",'a', 'a');得输出结果就是 A 。 A、 a,97 B、 a 97 C、 97,a D、 97 a (3) scanf("%c",&a);若要给变量输入大写字母 A,则以下正确得输入就是 B 。 A、 'A' <CR> B、 A <CR> \ C、 "A" <CR> D、 以上都不对 (4) 若一个 int 类型得数据占 2 字节,则程序段:int x=1;printf("%u,%d",x,x);得输出结果就是 A 。 A、 65535, 1 B、 1,65535 C、 32767, 32768 D、 32768,32767 (5) 在 TC 中,getchar、putchar、printf、scanf 四个函数,均包含在头文件 B 中。 A、 math、h B、 stdio、h C、 stbio、h D、 stdlib、h (6) 复合语句就是用 C 括起来得语句组。 A、 ( ) B、 [ ] C、 { } D、 < > (7) 下列格式符中,哪一个可以用于以八进制形式输出整数 C 。 A、 %d B、 %8d C、 %o D、 %ld (8) 下列格式符中,哪一个可以用于以十六进制形式输出整数 B 。 A、 %16d B、 %8x C、 %d16 D、 %d (9) a 就是int类型变量,c就是字符变量,下列输入语句中哪一个就是错误得 B 。 A、 scanf("%d,%c",&a,&c); B、 scanf("%d%c",a,c); C、 scanf("%d%c",&a,&c); D、 scanf("d=%d,c=%c",&a,&c); (10) 要使double x; long a;得数据能正确得输出,输出语句应就是 D 。 A、 printf("%d, %f",a, x); B、 printf("%d, %1f",a, x); C、 scanf("%1d, %1f",&a, &x); D、 printf("%1d, %lf",a, x); 2、 程序改错题(以下各个程序段均有 5 个错误,请先找出错误得位置,然后再改正) (1) 以下程序得功能就是,从键盘输入一个字符并鸣笛输出。 #include "stdio、h" mian //main { char c //char c; getchar(c);//c = getchar; putchar('\007') ; /*鸣笛*/ c=putchar; //putchar(c); //} (2) 以下程序得功能就是,输入长方形得两边长(边长可以取整数与实数),输出它得面积与周长。 main //main { int a,b,s,l; //double a,b,s,l; scanf("%d,%d",&a,&b); //scanf("%lf,%lf",&a,&b); s=a*b; l=a+b; //l=(a+b)*2; printf("l=%f,s=%f\n",l); //printf("l=%lf,s=%lf\n",l,s); } 3、 写出程序运行结果 (1) main { int a,b; scanf("%2d%*2s%2d",&a,&b); printf("%d\n",a+b); } 运行时输入:12345678 //输出:68 (2) main { int a=3,b=5,x,y; x=a+1,b+6; y=(a+1,b+6); printf("x=%d\ny=%d\n",x,y); } 输出:x=4 y=11 第4章 选择结构程序设计习题 1、 单项选择题 (1) 选择结构程序设计得特点就是___B____。 A、 自上向下逐个执行 B、 根据判断条件,选择其中一个分支执行 C、 反复执行某些程序代码 D、 以上都就是 (2) 假定所有变量均已正确定义,下列程序段运行后x 得值就是__B_。 a=b=c=0,x=35; if(!a) x; else if(b); if(c) x=3; else x=4; A、 34 B、 4 C、 35 D、 3 (3) 下面得程序片段所表示得数学函数关系就是_ A____。 if(x<0) y= 1; else if(x>0) y=1; else y=0; (4) 下列各语句序列中,能够且仅输出整型变量a、b 中最大值得就是( C )。 A、 if(a>b) printf("%d\n",a); printf("%d\n",b); B、 printf("%d\n",b); if(a>b) printf("%d\n",a); C、 if(a>b) printf("%d\n",a); else printf("%d\n",b); D、 if(a<b) printf("%d\n",a); printf("%d\n",b); (5) 以下程序段得输出结果就是 A int x=5; if(x>0) y=1; else if(x==0) y=0; else y= 1; printf("%d",y); A、 1 B、 5 C、 0 D、 2 (6) 程序段int x=5,y=8,max; max=(x>y)?x:y; printf("%d",max);得输出结果就是 B 。 A、 5 B、 8 C、 3 D、 13 (7) 程序段 int x=3,a=1;switch(x) {case 4: a++;case 3: a++;case 2: a++;case 1: a++;} printf ("%d",a);得输出结果就是 D 。 A、 1 B、 2 C、 3 D、 4 (8) 下列语句应将小写字母转换为大写字母,其中正确得就是( B )。 A、if(ch>='a'&ch<='z') ch=ch32; B、if(ch>='a'&&ch<='z')ch=ch32; C、ch=(ch>='a'&&ch<='z')?ch32:’’; D、ch=(ch>'a'&&ch<'z')?ch32:ch; 2、 阅读程序,写出运行结果 (1) void main { int a=10, b=4, c=3; if(a<b) a=b ; if(a<c) a=c ; printf("%d, %d, %d\n", a, b, c) ; } 输出:10,4, 3 (2) void main ( ) { int x=100, a=10, b=20, ok1=5, ok2=0; if(a<b) if(b!=15) if(!ok1) x=1; else if(ok2) x=10; else x=1; printf("%d\n", x); } 输出:1; (3) int k,a=1,b=2; k=(a++==b) ? 2:3; printf("%d",k); 输出:3 (4) void main { int s=1,k=0; switch (s) { case 1: k+=1; case 2: k+=2; default: k+=3; } printf(“%d”,k); }输出:6 (5) void main { int s=1,k=0; switch (s) { case 1: k+=1;break; case 2: k+=2;break; default: k+=3; } printf(“%d”,k); } 输出:1 第5章 循环结构程序设计习题 1、 单项选择题 (1)for(i=1;i<9;i+=1);该循环共执行了 B 次。 A、 7 B、 8 C、 9 D、 10 (2)int a=2;while(a=0) a;该循环共执行了 A 次。 A、 0 B、 1 C、 2 D、 3 (3)执行完循环 for(i=1;i<100;i++);后,i 得值为 B 。 A、 99 B、 100 C、 101 D、 102 (4)以下 for语句中,书写错误得就是 D 。 A、 for(i=1;i<5;i++); B、 i=1;for(;i<5;i++); C、 for(i=1;i<5;) i++; D、 for(i=1,i<5,i++); (5) C 语句,在循环条件初次判断为假,还会执行一次循环体。 A、 for B、 while C、 dowhile D、 以上都不就是 (6)循环结构得特点就是 C 。 A、 从上至下,逐个执行 B、 根据判断条件,执行其中一个分支 C、 满足条件时反复执行循环体 D、 以上都对 (7) i、j已定义为 int 类型,则以下程序段中内循环体得执行次数就是 A 。 for(i=5;i;i) for(j=0;j<4;j++){…} A、 20 B、 24 C、 25 D、 30 (8) C 语言 while 语句中,用于条件得表达式就是 D 。 A、 关系表达式 B、 逻辑表达式 C、 算术表达式 D、 任意表达式 (9) int a=1, x=1; 循环语句while(a<10) x++; a++; 得循环执行 D 。 A、 无限次 B、 不确定次 C、 10 次 D、 9 次 (10)下列程序段执行后 s 得值为 A 。 int i=1, s=0; while(i++) if(!(i%3)) break ; else s+=i ; A、 2 B、 3 C、 6 D、 以上均不就是 2、 填空题 (1)三种循环语句就是 等价 价得。 (2)当循环体中得switch语句内有break语句,则只跳出 swicth 语句。同样,当switch语句中有循环语句,内有 break 语句,则只跳出 循环 语句。 (3)循环体执行遇到continue 语句时 跳过本次循环进入下次循环 。 (4)下列程序得功能就是输入一个正整数,判断就是否就是素数,若为素数输出 1,否则输出 0,请为程序填空。 void main( ) { int i, x, y=1; scanf("%d", &x); for(i=2; i<=x/2; i++) if ( x%i==0 ) { y=0; break; } printf("%d\n",y); } (5)输入 N个实数,输出其中得最大值、最小值。 #include <stdio、h> void main( ) { int n,i; float no1,nmax,nmin; scanf("%d",&n); scanf("%f",&no1); nmax=no1; nmin=no1 ; for(i=2;i<=n;i++) { scanf("%f", &no1 ); if(no1>nmax) nmax=no1; if(no1<nmin) nmin=no1; } printf("MAX=%f MIN=%f\n",nmax,nmin); } (6)输入若干个字符,分别统计数字字符得个数、英文字母得个数,当输入换行符时输出统计结果,运行结束。 #include <stdio、h> void main( ) { char ch; int s1=0,s2=0 ; while(( ch=getchar )!='\n') { if(ch>='0'&&ch<='9') s1++; if(ch>='a'&&ch<='z' || ch>=’A’||ch<=’Z’) s2++; } } 3、 阅读下列程序,写出程序运行得输出结果 (1) void main( ) { int y=9; for( ;y>0; y) if(y%3==0) { printf("%d", y); continue;} } 输出:852 (2)main { int k,n,m; n=10;m=1;k=1; while(k++<=n) m*=2; printf("%d\n",m); } 输出:1024 (3) void main ( ) { int i=5; do {switch (i%2) {case 4: i; break; case 6: i; continue; } i ; i ; printf("i=%d ", i); } while(i>0); } 输出:i=3 i=1 i=1 (4)#include <stdio、h> void main( ) { int k=0; char c='A'; do { switch(c++) { case 'A': k++; break; case 'B': k; case 'C': k+=2; break; case 'D': k=k%2; break; case 'E': k=k*10; break; default: k=k/3; } k++; }while(c<'G'); printf("k=%d\n", k); } 输出:8 (5)输入数据:2,4 #include <stdio、h> void main( ) { int s=1,t=1,a,n; int i; scanf("%d,%d",&a,&n); for(i=1;i<n;i++) { t=t*10+1; s=s+t; } s*=a; printf("SUM=%d\n",s); } 输出:2468 4、 程序改错 (1) 以下程序就是显示[200,300]所有能被 7 整除得数,每行显示 5 个数,此程序有 5处错。 main { int i,n=0; /*n用来记录每行已打印数得个数*/ while(i<300) //while((i <= 300)&&(i >= 200)) { //i++; if(i%7==0) //if(i%7!=0) break; //continue; printf("%5d",i); n=n+1; if(n=5)/*满5个换行*/ //if(n == 5) { printf("\n"); n=0; } } } (2) 以下程序就是求 1!+2!+3!+4!+5!+6!+7!得值,其中有 3 处错误。 main { int i,s,t=0; //long s = 0,t = 1; //int i; for(i=1;i<=7;i++) { s=0; //去掉该语句 t=t*i; s=s+t; } printf("sum=d\n",s); //printf(“sum=%ld”,s); } 第6章 函数习题 1、 单项选择题 (1)C 语言总就是从 A 函数开始执行。 A、 main B、 处于最前得 C、处于最后得 D、 随机选一个 (2)函数在定义时,省略函数类型说明符,则该函数值得类型为 A 。 A、 int B、 float C、 long D、 double (2)以下 B 函数,真正地没有返回值。 A、 int a{int a=2;return (a);} B、 void b{printf("c");} C、 int a{int a=2;return a;} D、 以上都就是 (3)在 C 语言中,有关函数得说法,以下正确得就是 C 。 A、 函数可嵌套定义,也可嵌套调用 B、 函数可嵌套定义,但不可嵌套调用 C、 函数不可嵌套定义,但可嵌套调用 D、 函数不可嵌套定义,也不可嵌套调用 (4)以下函数调用语句中,含有实参得个数为 B 。 fun((2,3),(4,5+6,7)); A、 1 B、 2 C、 5 D、 6 (5)函数调用可以在 D 。 A、 函数表达式中 B、 函数语句中 C、 函数参数中 D、 以上都就是 (6)被调函数返回给主调函数得值称为 C 。 A、 形参 B、 实参 C、 返回值 D、 参数 (7) D ,可以不进行函数类型说明。 A、 被调函数得返回值就是整型或字符型时 B、 被调函数得定义在主调函数定义之前时 C、 在所有函数定义前,已在函数外预先说明了被调函数类型 D、 以上都就是 (8)被调函数通过 D 语句,将值返回给主调函数。 A、 if B、 for C、 while D、 return (9)被调函数调用结束后,返回到 B 。 A、主调函数中该被调函数调用语句处 B、主函数中该被调函数调用语句处 C、主调函数中该被调函数调用语句得前一语句 D、主调函数中该被调函数调用语句得后一语句 (10)以下对 C语言函数得有关描述中,正确得就是 A 。 A、 在 C 中,调用函数时,只能把实参得值传送给形参,形参得值不能传送给实参 B、 C函数既可以嵌套定义又可递归调用 C、 函数必须有返回值,否则不能使用函数 D、 C程序中有调用关系得所有函数必须放在同一个源程序文件中 (11)C 语言中函数得隐含存储类型就是 A 。 A、 auto B、 static C、 extern D、 无存储类型 (12)能把函数处理结果得两个数据返回给主调函数,在下面得方法中不正确得就是 A 。 A、 return 这两个数 B、 形参用两个元素得数组 C、 形参用两个这种数据类型得指针 D、 用两个全局变量 2、 填空题 (1) 变量得作用域主要取决于变量 定义得位子 ,变量得生存期既取决于变量 存储类型 ,又取决于变量 存储方式 。 (2) 说明变量时,若省略存储类型符,系统默认其为 整形 存储类别,该存储类别得类型符为: int 。 (3) 静态型局部变量得作用域就是 静态局部变量定义得复合语句或函数体内 ,生存期就是 整个程序运行期内 。 (4) 函数中得形参与调用时得实参都就是数组名时,传递方式为 地址传递 ,都就是变量时,传递方式为 值传递 。 (5) 函数得形式参数得作用域为 整个函数体内 ,全局得外部变量与函数体内定义得局部变量重名时, 函数体内定义得局部 变量优先。 (6) 若自定义函数要求返回一个值,则应在该函数体中有一条 return 语句,若自定义函数要求不返回一个值,则应在该函数说明时加一个类型说明符 void 。 (7) 若函数得形式参数就是指针类型,则实参可以就是 数组名 、 地址 或 指针变量 。 (8) 函数得参数为 char *类型时,形参与实参结合得传递方式为 地址传递 。 (9) 函数得实参为常量时,形参与实参结合得传递方式为 值传递 。 (10) 对数组按值从大到小得顺序排序后输出,请填空。 #include <stdio、h> void main { float a[7]={2,6,3,8,3,12,9}; int i ; void sort(float*,int); sort(a,7) ; for(i=0;i<7;i++) printf("%f ",a[i]); printf("\n"); } void sort( float *p, int n ) { int i,j,k; float t; for(i=0;i<n1;i++) { k=i; for(j=i+1;j<n;j++) if( p[k]<p[j] ) k=j; if(k != i) { t=*(p+i); *(p+i)=*(p+k); *(p+k)=t; } } } (11) 下列函数在 n 个元素得一维数组中,找出最大值、最小值并传送到调用函数,请填空。 #include <stdio、h> void find(float *p, float *max, float *min, int n) { int k; float t; *max=*p; *min = *p; for(k=1;k<n;k++) { t=*(p+k); if( t>*max ) *max=t; if(t<*min) *min=t; } } 3、 写出下列程序运行结果: (1) main { int i=1,p; p=fun(i,i+1); printf("%d\n",p); } int fun(int a,int b) { int f; if(a>b) f=1; else if(a==b) f=0; else f=1; return f; } 输出:1 (2)键盘输入 abcdef<CR> #include <stdi
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 通信科技 > 开发语言

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服