1. c语言计算机二级考试选择题如图
全国计算机二级考试试题题库(附答案)
下列各题 A) 、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项在答题
卡相应位置上涂黑,答在试卷上不得分。
(1) 应用软件是指
A) 所有能够使用的软件 B) 能被各应用单位共同使用的某种软件
C) 所有微机上都应使用的基本软件 D) 专门为某一应用目的而编制的软件
(2) 下列述叙中错误的是
A) 计算机要经常使用不要长期闲置不用
B) 为了延长计算机的寿命,应避免频繁开关计算机
C) 在计算机附近应避免磁场干扰
D) 计算机用几小时后,应关机一会儿再用
(3) 下列字符中,ASCII码值最小的是
A) A B) a C) Z D) x
(4) 用晶体管作为电子器件制成的计算机属于
A) 第一代 B) 第二代 C) 第三代 D) 第四代
(5) 下列各不同进制的四个无符号数中,最小的数是
A) ()2 B) (37)8 C) (75)10 D) (2A)16
(6) 二进制数转换成十六进制数是
A) B) C) D)
(7) 下列各无符号十进制数中,能用八位二进制表示的是
A) 296 B) 333 C) 256 D) 199
(8) 计算机的软件系统可分类为
A) 程序与数据 B) 系统软件与应用软件
D) 操作系统与语言处理程序 D) 程序、数据与文档
(9) 486机中的CPU同时能处理的二进制位数为
A) 8 B) 16 C) 32 D) 64
(10) 在使用计算机的过程中,需要重新启动DOS,则要
A) 按Ctrl+Break键 B) 按^C键 C) 按Ctrl+Alt+Del键 D) 按^H键
(11) 现要从软盘启动DOS(软盘中已存有DOS系统),设有如下一些操作:①打开计算机
电源;②将该软盘插入A驱动器;③关好A驱动器门。则冷启动的操作顺序应为
A) ①→②→③ B) ③→②→① C) ②→①→③ D) ②→③→①
(12) 设当前盘中某一文件路径为\A\C\B\,当前目录为\A。下列命令中错误的是
A) CD.. B) RD \A\C\B
C) TYPE \A\C\B\ D) TYPE C\B\
(13) 设当前盘中的根目录下有一子目录AB,在子目录AB下有一文件。现要查看文件
的内容,应使用命令
A) TYPE \AB B) TYPE \AB\
C) TYPE \ D) DIR \AB\
(14) 自动批处理文件必须放在
A) C盘根目录中 B) A盘根目录中
C) 启动盘的任一个目录中 D) 启动盘的根目录中
(15) 设当前盘当前目录为C:\USER\XY\P,且当前盘当前目录为空,则下列命令中能正
确执行的是
A) RD C:\USER\XY\P B) RD USER\XY\P
C) MD \USER\XY\P\USER D) MD \USER\XY\P\X\Y
(16) 下列DOS命令中,合法的是
A) DISKCOMP B) TYPE >>
C) COMP A: B: D) COMP A: A:
(17) 设当前盘为C盘,所用的所有软盘已格式化,且容量相同,则下列DOS命令中错
误的是
A) DISKCOPY A: A: B) COPY A:*.* C) COPY *.* D) COPY A:*.* C:
(18) 下列DOS命令中错误的是
A) TYPE >PRN B) TYPE PRN
C) COPY *.TXT PRN D) COPY CON PRN
(19) 下列四组DOS命令中,互相等价的一组是
A) COPY A:*.* B:与DISKCOPY A: B:
B) COPY +与TYPE >>
C) COPY + 与COPY +
D) TYPE *.FOR>CON与COPY *.FOR CON
(20) 设C盘目录结构如下:
且C盘根目录下文件的内容为
CD FORTRAN
CD \TC
如果在A驱动器中插入一张根目录中只有扩展名为.C的若干文件(即A盘中无DOS系统
文件)的软盘片,则由C盘启动DOS系统后,第一次键入下列命令中,正确的是
A) COPY A:\*.C B) COPY A:\*.C TC
C) COPY A:\*.C FORTRAN D) CD USER
(21) C语言提供的合法的数据类型关键字是
A) Double B) short C) integer D) Char
(22) 在C语言中,合法的长整型常数是
A) 0L B) 4962710 C) D)
(23) 表达式:10!=9的值是
A) true B) 非零值 C) 0 D) 1
(24) 合法的C语言中,合法的长整型常数是
A) '\t' B) "A" C) 65 D) A
(25) 若有说明和语句:
int a=5;
a++;
此处表达式a++的值是
A) 7 B) 6 C) 5 D) 4
(26) 在下列选项中,不正确的赋值语句是
A) ++t; B) n1=(n2=(n3=0)); C) k=i==j; D) a=b+c=1;
(27) 若有说明:int i,j=7, *p=&i;,则与i=j;等价的语句是
A) I= *P; B) *P=*&J; C) i=&j; D) i=* *p;
(28) 不能把字符串:Hello!赋给数组b的语句是
A) char b[10]={'H','e','l','l','o','!'};
B) char b[10];b="Hello!";
C) char b[10];strcpy(b,"Hello!");
D) char b[10]="Hello!";
(29) 若有以下说明:
int a[12]={1,2,3,4,5,6,7,8,9,10,11,12};
char c='a',d,g;
则数值为4的表达式是
A)a[g-c] B)a[4] C)a['d'-'c'] D)a['d'-c]
(30) 若有以下说明:
int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;
则数值为6的表达式是
A) *p+6 B) *(p+6) C) *p+=5 D) p+5
(31) 若有以下说明:
int w[3][4]o={{0,1},{2,4},{5,8}};
int(*p)[4]=w;
则数值为4的表达式是
A) *w[1]+1 B) p++,*(p+1) C) w[2][2] D) p[1][1]
(32) 若程序中有下面的说明和定义
struct abc
{int x;char y;}
struct abc s1,s2;
则会发生的情况是
A) 编译进错 B) 程序将顺利编译`连接`执行
C) 能顺利通过编译`连接`但不能执行 D) 能顺利通过编译`但连接出错
(33) 能正确表示a≥10或a≤0的关系表达式是
A)a>=10 or a<=0 B)a>=10│a<=0
C)a>=10││a<=0 D)a>=10 ││a<=0
(34) 下面程序的输出是
main()
{ int x=3,y=6,a=0;
while(x++!=(y+=o1))
{ a+o=1;
if(y
#include
main()
{ char ss[10]="12345";
strcat(ss,"6789");
gets(ss);printf("%s\n",ss);
}
A) ABC B) ABC9 C) 123456ABC D) ABC456789
(35) 下面程序的输出是
main()
{ char *a="";
int v1=0,v2=0,v3=0,v4=0,k;
for(k=0;s[k];k++)
switch(s[k])
{ default:v4++;
case '1': v1++;
case '3': v3++;
case '2': v2++; }
printf("v1=%d,v2=%d,v3=%d,v4=%d\n",v1,v2,v3,v4); }
A) v1=4,v2=2,v3=1,v4=1 B) v1=4,v2=9,v3=3,v4=1
C) v1=5,v2=8,v3=6,v4=1 D) v1=8,v2=8,v3=8,v4=8
(36) 下面程序的输出是
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=b
(37) 若有以下程序段,w和k都是整型变量:
┆
w=k;
LB: if(w==0) go to LE;
w--;
printf("*");
goto LB;
LE: ┆
则不能与上面程序段等价的循环语句是
A)for(w=k;w!=0;w--) printf("*"); B)for(w=k;w;--w)printf("*");
C)w=k; D)w=k;
while(w--!=0)printf("*");w++; do{ w--;printf("*");}while(w!=0);
(38) 若有说明,double *p,a;则能通过scanf语句正确给输入项读入数据的程序段是
A)*p=&a; scanf("%lf",p); B)p=(double *)malloc(8);scanf("%f",p);
C) p=&a;scanf("%lf",a); D)p=&a; scanf("%le",p);
(39) 当执行下面程序且输入:ABC时,输出的结果是
#include
#include
main()
{ char ss[10]="12345";
gets(ss);printf("%s\n",ss); }
A) ABC B) ABC9 C) 123456ABC D) ABC456789
(40) 若有以下的说明和语句:
main()
{int t[3][2], *pt[3],k;
fpr(k=o; k<3;k++)pt[k]=t[k];
}
则以一选项中能正确表示t数组元素地址的表达式是
A) &t[3][2] B) *pt[0] C) *(pt+1) D) &pt[2]
(41) 下面程序输出数组中的最大值,由s指针指向该元素.
main()
{ int a[10]={6,7,2,9,1,10,5,8,4,3,},*p,*s;
flr(p=a, s=a; p-a<10; p++)
if(---?---)s=p;
printf("The max:%d",*s):
}
则在if语句中的判断表达式应该是
A) p>s B) *p>*s C) a[p]>a[s] D) p-a>p-s
(42) 下面程序的输出是
#include
main()
{ char*a="abcdefgh";
fun(a);puts(a); }
fun (char * s)
{ int x=0,y;char c;
for(y=strlen(s)-1;x
A)abcdefgh B)hgfdecba C)dcbahgfe D)hgfedcba
(43) 若有以下函数调用语句: fun(a+b,(x,y),fun(n+k,d,(a,b)));在此函数调用语句
中实参的个数是
A)3 B)4 C)5 D)6
(44) 下面程序的输出是
main()
{ int t=1; fun(fun(t));}
fun(int h)
{ static int a[3]={1,2,3};
int k;
for(k=0;k<3;k++) a[k]+=a[k]-h;
for(k=1;k<3;k++) printf("%d",a[k]);
printf("\n"); return(a[h]);}
A)1,2,3, B)1,3,5, C) 1,3,5, D) 1,3,5,
1,5,9, 1,3,5, 0,4,8, -1,3,7,
(45) C语言中,函数的隐含存储类别是
A)auto B)static C)extern D)无存储类别
(46) 下面程序的输出是
int w=3;
main()
{ int w=10; printf("%d\n",fun(5)*w); }
2. 谁有大一C语言考试题快考试了,跪求题库··
单项选择题(每小题2分,共50分)
1、一个C程序的执行是从___A__。
A、本程序的main函数开始,到main函数结束
B、本程序的main函数开始,到本程序文件的最后一个函数结束
C、本程序文件的第一个函数开始,到本程序文件的最后一个函数结束
D、本程序文件的第一个函数开始,到本程序main函数结束
2、C语言程序的基本单位是___C___。
A、程序行 B、语句
C、函数 D、字符
3、请选出可用作C语言用户标识符的一组标识符___B___。
A、void B、a3_b3 C、For D、2a
define _123 -abc DO
WORD IF ase sizeof
主要特点
C语言是一种结构化语言,它有着清晰的层次,可按照模块的方式对程序进行编写,十分有利于程序的调试,且c语言的处理和表现能力都非常的强大,依靠非常全面的运算符和多样的数据类型,可以轻易完成各种数据结构的构建,通过指针类型更可对内存直接寻址以及对硬件进行直接操作,因此既能够用于开发系统程序,也可用于开发应用软件。
以上内容参考:网络-c语言
3. c语言题目不会在哪能搜到
如果您遇到了一些较为复杂或者比较专业的C语言编程题目,可能在一些普通的搜索引擎中不容易找到相关的答案。以下是一些可以查找C语言编程题目的网站和资源:
LeetCode(https://leetcode.com):这是一个着名的面向程序员的算法练习平台,其中包含大量难度不同的C语言编程题目,涵盖各种数据结构和算法问题。
HackerRank(https://www.hackerrank.com):HackerRank 是一个全球性的技术人才招聘和技能测评平台,在其上也包含有丰富的C语言编程题物蚂库轿蚂春。
Programiz(https://www.programiz.com):Programiz 是一个面向初学者的编程教育网站,提供了许多C语言编程题目和示例代码,适合需要初步入门的学习者。
Stack Overflow(https://stackoverflow.com):Stack Overflow 是一个知名的程序员问答社区,其中包含了大量的编程问题和解答,适合于寻找具体问题的答案和解决方案。
GitHub(https://github.com):GitHub 是一个全球最大的开源代码库,其中闭耐包含着数以亿计的开源项目和代码片段,可以通过搜索关键字找到相应的C语言编程题目和实现代码。
4. 谁知道哪有关于C语言的练习题
C 程序设计试题库C语言概述练习题
1.一个C程序的执行是从( )
A.本程序的main函数开始,到main函数结束
B.本程序文件的第一个函数开始,到本程序文件的最后一个函数结束
C.本程序的main函数开始,到本程序文件的最后一个函数结束
D.本程序文件的第一个函数开始,到本程序main函数结束
2.以下叙述正确的是:( )
A.在C程序中,main函数必须位于程序的最前面
B.程序的每行中只能写一条语句
C.C语言本身没有输入输出语句
D.在对一个C程序进行编译的过程中,可发现注释中的拼写错误
3.以下叙述不正确的是:( )
A.一个C源程序可由一个或多个函数组成
B.一个C源程序必须包含一个main函数
C.C程序的基本组成单位是函数
D.在C程序中,注释说明只能位于一条语句的后面
4.C语言规定:在一个源程序中,main的位置( )
A.必须在最开始
B.必须在系统调用的库函数后面
C.可以任意
D.必须在最后
5.一个C语言程序是由( )
A.一个主程序和若干子程序组成
B.函数组成
C.若干过程组成
D.若干子程序组成
6.C源程序的基本单位是____________
7.一个C源程序中至少包括一个____________
8.在一个C源程序中,注释部分两侧的分界符分别为____________ 和____________
9.在C语言中,输入操作是由库函数____________ 完成的,输出操作是由库函数____________ 完成的
c语言模拟练习题
一、 判断题(2×8=16分)
1、Printf()函数总是从新行的起始位置开始打印。 ( )
2、所有的变量在使用前都必须予以申明。( )
3、在申明变量时必须给出变量的类型。( )
4、C语言认为变量number和NuMbEr是相同的。( )
5、打印三行输出的C语言程序必须用三条printf语句。( )
6、求余运算符%只能用于两个整数操作数。( )
7、switch选择结构中必须有default子句。( )
8、如果x>y或a<b为真,那么表达式(x>y&&a<b)为真。( )
二、 选择题(3×16=48分)
1、下面实现换行功能的格式符为 。( )
A. \t B. \n C. \a D. \k
2. C语言程序由什么组成?(单选)
A. 子程序 B. 主程序和子程序 C. 函数 D. 过程
3. 下面哪个表达式的值为4.
A. 11/3 B. 11.0/3
C. (float)11/3 D. (int)(11.0/3+0.5)
4. 该源程序执行后,屏幕上显示什么?
void main()
{
int a;
float b;
a=4;
b=9.5;
printf("a=%d,b=%4.2f\n",a,b);
}
A. a=%d,b=%f\n B. a=%d,b=%f
C. a=4,b=9.50 D. a=4,b=9.5
5. 若有以下说明语句:
char s='\\\092';
则下面哪一项是正确的.
A. 使s的值包含2个字符 B. 说明语句不合法
C. 使s的值包含6个字符 D. 使s的值包含4个字符
6.若k,g均为int型变量,则以下语句的输出为哪一项?
int k,g;
k=017;
g=111;
printf("%d,",k);
printf("%x\n",g);
A. 15,6f B. f,6f C. f,111 D. 15,111
7. 在C语言的if语句中,用作判断的表达式为___。
A. 关系表达式 B. 逻辑表达式
C. 算术表达式 D. 任意表达式
8. 请问:下面这个程序段的输出是什么?
int a,b,c;
a=7;b=8;c=9;
if(a>b)
a=b,b=c;c=a;
printf("a=%d b=%d c=%d\n",a,b,c);
A. a=7 b=8 c=7 B. a=7 b=9 c=7
C. a=8 b=9 c=7 D. a=8 b=9 c=8
9. 下面这个程序的输出是什么?
#include <stdio.h>
main()
{
int y=10;
while(y--);
printf("y=%d\n",y);
}
A. y=0 B. while构成死循环 C. y=1 D. y=-1
10. 若有以下说明和语句,则输出结果是___。
char str[]="\"c:\\abc.dat\"";
printf("%s",str);
A. 字符串中有非法字符 B. \"c:\\abc.dat\"
C. "c:\abc.dat" D. "c:\\abc.dat"
11. 如果要把常量327存入变量a中,a不能定义成哪些类型?
A. int B. char C. long D. float
12. C语言中,预处理总是以 符号开头。 ( )
A. ¥ B.# C. @ D. ◇
13. C语言中,double类型的数据占 个字节的空间。( )
A. 1 B.2 C. 4 D. 8
14. 下面语句执行完后,b的值为 。 ( )
int a=b=10;
b=10+(a++);
A. 10 B.19 C. 20 D. 21
15. 这段程序中的常量有: (多选) ( )
#define PI 3.14
void main()
{
int sum;
sum = 10 + 15;
printf("sum=%d\n",sum);
printf("result is 25\n");
}
这段程序中常量有:
A. 10 B. sum C. 15
D. 25 E. main F. PI
16. 指出下面错误的表达式:(多选) ( )
A. a+b=5 B. 56=a11 C. i=i++
D. 5.6+6.2%3.1 E. 12 F. a=5,b=6,c=7
三、 填空题(3×8=24分)
1、C语言程序都是从 函数开始执行。
2、函数体用 开始,用 结束。
3、C语言的语句都以 结束。
4、执行循环结构中的 语句能够立即执行下一次循环。
5、执行循环结构或switch结构中的 语句能够立即退出该结构。
6、输出字符串的格式化符为 。
7、C语言中数组名表示数组的 。
5. C语言题库,求发一份
单选题
1. 以下叙述中正确的是(1)。
A.若e1、e2为变量,e为表达式,则
e1=e2=e使得e1、e2都具有表达式e的值 。
B.程序中不能定义与库函数名同名的变量。
C.一个C源程序可放在多个文件中,但
一个函数不能跨放在两个不同的文件中。
D.C语言编译系统以函数为单位编译源程序。
2. 若a,b,c都是实型变量,则下列语句中除 (2) 之外,都可能得不到正确的计算结果。
A.if(b*b-4*a*c==0) x1=x2=-b/(2*a);
else x1=(-b+sqrt(b*b-4*a*c))/(2*a), x2=(-b-sqrt(b*b-4*a*c))/(2*a);
B.b=2.0e38+1.0-2.0e38;
C.a=456*768/2;
D.double define=1.0;
3. 以下正确的常量是(3 )。
A.‘077’ B.‘\0x89’ C.3.14u D.‘\012’
4. 若已有声明“float x= -1234.5678; int m,n=4;”则执行“m=printf(“\n%8.3f\n”,x)/n;”语句后,
变量m的值是 (4) 。
A. 2 B. 3 C. 4 D. 5
5. 若已有声明“int x1; float x2; long x3; char x4;”,且以下选项均出现在switch语句中,其中正确
的是 (5) 。
A. case 1.1: scanf("%d",&x1);break;
B. case 1+2: scanf("%f",&x2); break;
C. case 'x':
case 'y'-1: scanf("%ld",&x3); break;
D. case x4: scanf("%c",&x4); break;
6. 33.以下表达式中,能够作为“if(e) 语句”中判断条件表达式e 的是 (6) 。
A. x==++(x+1) B. x+=++x||x++ C. x+1=z D. x%2.0!=0
7. 以下局部变量声明中,正确的是 (7) 。
A.int x=0, void=1; B.int x=1,y=2x;
C.int x=2,y=sqrt(x); D.int x=sqrt(y),y=4;
8. 在以下语句中,正确的是 (8) 。
A.if(a>b)m=a;n=b;else m=b;n=a;
B.if(a>b){m=a;n=b;else m=b;n=a;}
C.if(a>b)m=a,n=b;else m=b,n=a;
D.if(a>b){m=a;n=b;}else(a<=b){m=b;n=a;}
9.24.已知有声明:“char c=‘1’ ; int x=300 ; float t=35000 ; double d=3.1234567e10 ;”,则以下表达式
求值时除 (9 ) 外,其结果都可能是不准确的。
A.x=t/c B.t=d/x C.t=d/1e5f D. t=x+c
10.若有声明“int i,k=1; unsigned j;”,则下列语句执行时会出现无限循环的语句
是 (10) 。
A.for(j=15;j>0;j-=2) k++;
B.for(j=0;j<15;j+=2) k++;
C.for(i=0;i<15;i+=2) k++;
D.for(i=15;i>0;i-=2) k++;
11.已有声明“int x=2,y=1,z=0;”,以下表达式的值不为0的是 (11) 。
A. x==(x=0,y=1,z=2)
B. z>y>x
C. x>y==1
D. x>(y=2)
12.若e1、e2和e3是表达式,以下选项中与语句while(e1){e2,e3;}功能等价的语句是 (12 ) 。
A. for( ;e1;e3)e2; B. for( ;e1;e2)e3; C. for(e1;e2;e3); D. for(e1; e2, e3; );
13.已有声明“int x=3;”,以下选项中与“x+=x =x+1”功能不等价的表达式是 (13 ) 。
A.x=x+(x=xx+1) B.x=x+(x=x(x+1)) C.x=x+(x=xx1) D.x=x(x+1), x=x+x
14.若已有声明“int a=2; ”,则执行语句“printf("%d", a, a+1 );”后的输出结果是 (14) 。
A.语法错 B. 2,3 C. 2 D. 3
15.语句“if (!n) n++;”中的“!n”等价于如下 (15) 条件的判定。
A.n==0 B.n!=0 C.n>0 D.n<0
16.若已有声明“int a=1; ”,则以下表达式中错误的是 (16 ) 。
A.-a++ B.+a-- C.--a D.++-a
17.下列 (17) C语言表达式能正确表达数学计算式1÷× 2xy。
A. 1/sqrt(2*3.14)*2*pow(x,y) B.1.0/sqrt(2)*2*x**y
C. 1.0/sqrt(6.28)*2x^y D.1/6.28^0.5*2*pow(x,y)
18. 已有声明“int a=3,b=3,c=2;”,以下表达式中值为0的是 (18) 。
A. !a&&!b&&c B. !a || !b || c C. a==b &&b>=c D. a>=b &&b>c
19.
36.若有: int w=1 , x=2 , y=3 , z=4; 则表达式 w>x?x--:y<z?y--:++z 的值为 (19 ) 。
A. 4 B. 3 C. 2 D. 1
20. 已知某程序中有以下片断:
#define p 2.5
main( )
{ float x=p;
}
则main函数中标识符p代表一个 (20) 。
A. float型变量 B. double 型变量 C. float型常量D.double 型常量
20.
填空题
1.21.设有如下程序段:
int a=2, b, c=5 ;
scanf( “%d” , &b) ;
b = c-- || scanf (“%d” , &c ) && a++;
执行该程序段时,若从键盘上输入的数据是 4ƀ3 (ƀ代表空格键) , 则变量c 的值为 (21) 。
2. signed和unsigned只能用于声明int型变量和 (22) 型变量。
3.代数式“||”的C语言表达式是 (23) 。
4.已有声明“int a=-13,n=7;”,表达式“a%=n%=4”求值后变量a的值为 (24) 。
5.已有声明“unsigned int a=30; ” ,那么 –a 的值为___(25)____。
6.
如下程序执行后的输出是____(26)____。
#include<stdio.h>
main ( )
{
int i=1,m=0;
switch ( i )
{
case 1 :
case 2 : m++;
case 3 : m++;
}
printf ( “%d” ,m);
}
7.C语言的三个逻辑运算符(!、&&、||)中,优先级高于算术运算符的是
(27) 。
8.已知sizeof(int)的值为2,执行如下程序后输出结果为 (28) 。
main()
{ int a,b;
a=65536;
b=32767+1;
printf("%d %d\n",a,b);
}
9.若有声明“int a=3,b=0,c=5;”, 则表达式 !a+b+c-1&&b+c/2 的值是 (29) 。
10.若有声明“int x=1,y=2;” ,则表达式 ++x, x+y++ 的值是 (30) 。
三、阅读程序题
1.在PC机的TC中执行以下程序后的输出是: (31) 。
main()
{
unsigned x=0x7f39;
int y;
char c;
c=x;
x+=0307;
y=x;
printf(“%d,%x,%c”,x,y,c);
}
2.以下程序运行后的输出结果是 (32) 。
#include<stdio.h>
main ( )
{ int x=30, y=45;
while(x!=y)
if(x>y)x-=y;
else y-=x;
printf("%d", x);
}
3.
以下程序运行后输出结果的第一行是 (33) ,第二行是 (34) 。
#include<stdio.h>
#include<math.h>
void main()
{ int a=0x65,b,c,count=0;
b=a;
while(b>0)
{ b=b/8;
count++;
}
printf("%d\n",count);
while(count>0)
{ c=pow(8,count-1);
printf("%d",a/c);
a=a%c;
count--;
}
}
4.以下程序运行时输出结果是 (35) 。
#include <stdio.h>
main()
{
int i,x=3,y=5;
for(i=0;i<3;i++)
switch(y%x)
{
case 0: printf("%d",y);
case 1: printf("%d",y--);break;
case 2: printf("%d",--y);break;
}
}
5.以下程序执行后,输出结果的第一行是 (36) ,第二行是 _(37)______。
#define N 100
main()
{ int i=0,sum=0;
do
{ if(i==(i/2)*2)
continue;
sum++;
if(sum>3)
break;
}while(++i<N);
printf("%d \n %d", sum,i);
}
四、完善程序题
1.下列程序的功能是按从键盘上输入的整数m,判断2m -1是否为素数,若为素数再求2m -1的反序数。例如:m为17,217 –1(131071)是素数,其反序数是170131。
#include <stdio.h>
(38)
main()
{
int m,j;
long q,k1,k2=0,k3;
scanf("%d",&m);
k3=k1=pow(2,m)-1;
q=sqrt(k1);
for(j=2;j<=q;j++)
if( (39) ) break;
if(j>q)
{ while(k3>0)
{ k2=k2*10+ (40) ;
k3/=10;
}
printf("m=%d\npow(2,m)-1=%ld is a prime.\nreverse order %ld\n",m,k1,k2);
}
else
printf("m=%d isn't a prime.\n",m);
}
2. 以下程序找到并输出所有满足给定条件的四位十进制表示的正整数:该数是某个数的平方、该数的后二位是25、组成该整数的各位数字中有两位是2。例如:1225是满足所给条件的四位正整数(352=1225)。
#include<stdio.h>
#include<math.h>
main()
{ long i,j,s,d=0;
for(i=1000;i<10000;i++)
{ (41) ;
j= (42) ;
if(i==j*j && i%100==25)
{ s=i;
while(s>0)
{ if( (43) )d++;
s=s/10;
}
if(d==2) printf("\n %d",i);
}
}
}
3..下列程序计算下列数学函数展开式的近似值,累加运算在最后一项的绝对值小于10-6时停止。
程序运行时从键盘上分别三个实数-1.0、0.5、1.0,作为x的值。
#include <stdio.h>
#include <math.h>
#define EPS 1.0e-6
main()
{ double x,n,tn,ft,sn,xn;
int i;
for(i=0;i<3;i++)
{ (44) ;
ft=1.0;
scanf("%lf",&x);
sn=xn=x;
do{
xn=xn*x*x;
ft=ft*(2*n-3)/(2*n-2);
tn=ft*xn/ (45) ;
sn=sn+tn;
n=n+1;
}while( (46) );
printf("f(%lf)=%0.6lf\n",x,sn);
}
}
《C语言程序设计》试卷答题纸
(本试卷满分100分)
系科_____________学号_____________姓名_____________成绩____________
单项选择题得分 填空题得分 阅读程序题得分 完善程序题得分 总分
一 、单项选择题
(1) (2) (3) (4) (5)
(6) (7) (8) (9) (10)
(11) (12) (13) (14) (15)
(16) (17) (18) (19) (20)
二、填空题
(21) (22)
(23) (24)
(25) (26)
(27) (28)
(29) (30)
三、阅读程序题
(31) (32)
(33) (34)
(35) (36)
(37
四、完善程序题
(38) (39)
(40) (41)
(42) (43)
(44) (45)
(46)
《C语言程序设计》试卷参考答案
(本试卷满分100分)
一 、单项选择题
(1)C (2)D (3)D (4)A (5) B
(6)B (7)C (8)C (9)D (10)A
(11)C (12)A (13)A (14)C (15)A
(16)D (17)A (18)A (19)B (20)D
二、填空题
(21) 4 (22) char
(23) fabs(exp(sqrt(1+sin(x)))) (24) -1
(25) 65506 (26) 2
(27) ! (28) 0 -32768
(29) 1 (30) 4
三、阅读程序题
(31) -32768, 8000, 9 (32) 15
(33) 3 (34) 145
(35) 4433 (36) 4
(37) 7
四、完善程序题
(38) #include <math.h> (39) k1%j==0
(40) k3%10 (41) d=0
(42) sqrt(i) (43) s%10==2
(44) n=2.0 (45) (2*n-1)
(46) fabs(tn)>EPS
6. 急求C语言复习题库加答案
一 选择题(7分,每小题0.5分)
1.C语言源程序的基本单位是( B)。
A 过程 B 函数 C 子程序 D 标识符
2.下列程序的输出结果是(C)。
main( )
{ int a=7,b=5;
printf("%d\n",b=b/a);
}
A 5 B 1 C 0 D不确定值
3.假设变量a,b均为整型,表达式(a=5,b=2,a>b?a++:b++,a+b)的值是(B)。
A 7 B 8 C 9 D 2
4.设a为int型变量,执行下列赋值语句后,a的取值分别是( B )。
a=125.534; a=(int)125.521%4; a=5<<2;
A 125,31,1 B 125,1,20 C 125,31,20 D 125.534,2,20
5.设有如下程序段,下面描述中正确的是 ( C )。
int k=10; while(k=0) k=k-1;
A 循环执行一次 B循环是无限循环 C循环体语句一次也不执行 D循环体语句执行一次
6.以下程序的输出结果为(A)。
int i;
void prt( )
{ for(i=5;i<8;i++) printf("%c",'*');
printf("\t");
}
main( )
{ for(i=5;i<=8;i++) prt( );
}
A *** B *** *** *** *** C *** *** D * * *
7.在C语言程序中,以下说法正确的是(B)。
A函数的定义可以嵌套,但函数的调用不可以嵌套
B函数的定义不可以嵌套,但函数的调用可以嵌套
C函数的定义和函数的调用都不可以嵌套
D函数的定义和函数的调用都可以嵌套
8.以下函数调用语句中含有(A)个实参。
func((e1,e2),(e3,e4,e5));
A 2 B 3 C 5 D 语法错误
9.以下程序的输出结果为(A)。
#define ADD(x) x*x
main( )
{ int a=4,b=6,c=7,d=ADD(a+b)*c;
printf("d=%d",d);
}
A d=70 B d=80 C d=140 D d=700
10.已知职工记录描述如下,在Turbo C中,系统为变量w分配(C )字节的空间。
struct worker
{ int no;
char name[20];
char sex;
union
{ int day; int month; int year;}birth;
} w;
A 29 B 20 C 25 D 6
11.设有以下定义,值为5的枚举常量是(A )。
enum week{sun,mon=4,tue,wed,thu,fri,sat} w;
A tue B sat C fri D thu
12.下面选项中正确的赋值语句是(设 char a[5],*p=a;)(A)。
A p="abcd"; B a="abcd"; C *p="abcd"; D *a="abcd";
13.设有以下程序段,则值为6的表达式是(B )。
struct st { int n; struct st *next;};
static struct st a[3]={5,&a[1],7,&a[2],9,0 },*p;
p=&a[0];
A p++->n B ++p->n C p->n++ D (*p).n++
14.C语言中的文件类型只有( D )。
A 索引文件和文本文件两种 B 文本文件一种
C 二进制文件一种 D ASCII码文件和二进制文件两种
二 判断对错,对的划“√”,错的划“×”(5分,每小题0.5分)
1.在Turbo C中,整型数据在内存中占2个字节。(× )
2.int i=20;switch(i/10){case 2:printf("A");case 1:printf("B");}的输出结果为A。(× )
3.break语句用在循环体中,可结束本层循环,continue语句用在循环体中,可结束本次循环。( √ )
4.函数的递归调用不过是一个函数直接或间接地调用它自身。(√)
5.函数strlen("ASDFG\n")的值是7。(× )
6.通过return语句,函数可以带回一个或一个以上的返回值。(×)
7.结构体类型只有一种。 ( × )
8.char *p="girl";的含义是定义字符型指针变量p,p的值是字符串"girl"。(× )
9.若有定义:char *p(char a[10]);则p是函数名。(√ )
10.用fopen("file","r+");打开的文件"file"可以进行修改。 ( √ )
答案
一 选择题(7分,每小题0.5分)
1. B 2. C 3. B 4. B 5. C
6. A 7. B 8. A 9. A 10. C
11. A 12. A 13. B 14. D
二 判断对错,对的划“√”,错的划“×”(5分,每小题0.5分)
1.× 2.× 3.√ 4.√ 5.×
6.× 7.× 8.× 9.√ 10.√
1选择题(24分,每小题2分)
1.已知函数fread的调用形式为fread(buffer,size,count,fp),其中buffer代表的是(B)。
A 存放读入数据项的存储区 B 存放读入数据的地址或指向此地址的指针
C 一个指向所读文件的文件指针 D 一个整形变量,代表要读入的数据项总数
2.以下程序的输出结果为( C)。10,10
main( )
{ int i=010,j=10;
printf("%d,%d\n",i++,j--); }
A 11,9 B 9,10 C 8,10 D 9,9
3.设a为int型变量,执行下列赋值语句后,a的取值分别是( B )。a=125.534;a=20.0/3;a=(int)125.521%4;a=5<<2;
A 125,6,31,1 B 125,6,1,20 C 125,6.666666,31,20 D 125.534,6.666666,2,20
4.设i和k都是int类型,则for循环语句(D )。
for(i=0,k=-1;k=1;i++,k++) printf("****\n");
A 循环结束的条件不合法 B 循环体一次也不执行 C 循环体只执行一次 D 是无限循环
5.以下程序的输出结果为(`D )。
main( )
{ char c;
int i;
for(i=65;i<68;i++)
{ c=i+32;
switch(c)
{ case 'a':case 'b':case 'c':printf("%c,",c);break; default:printf("end");}
}
}
A a,b,c,end B a,a,a,end C a,a,a, D a,b,c,
6.函数调用语句:fseek(fp,-10L,2);的含义是(A )。
A 将文件位置指针从文件末尾处向文件头的方向移动10个字节
B 将文件位置指针从当前位置向文件头的方向移动10个字节
C 将文件位置指针从当前位置向文件末尾方向移动10个字节
D 将文件位置指针移到距离文件头10个字节处
7.以下程序的输出结果为(D )。
main( )
{ char s1[40]="country",s2[20]="side";
int i=0,j=0;
while(s1[i]!='\0') i++;
while(s2[j]!='\0') s1[i++]=s2[j++];
s1[i]=0;
printf("%s\n",s1);
}
A side B country C sidetry D countryside
8.下列说法不正确的是(A)。
A 主函数main中定义的变量在整个文件或程序中有效
B 不同函数中,可以使用相同名字的变量
C 形式参数是局部变量
D 在一个函数内部,可以在复合语句中定义变量,这些变量只在本复合语句中有效
9.在下列程序段中,枚举变量 c1的值是( D )。
enum color { red,yellow,blue=4,green,white}c1; c1=yellow; c1=white;
A 1 B 3 C 5 D 6
10.设有说明 int (*ptr)();其中标识符ptr是(B)。
A 是一个指向整形变量的指针 B 是一个指针,它指向一个函数值是int的函数
C 是一个函数名 D定义不合法
11.定义由n个指向整形数据的指针组成的数组p,其正确的方式为( C )。
A int p; B int (*p)[n]; C int *p[n]; D int (*p)( );
12.具有相同类型的指针类型变量p与数组a,不能进行的操作是( B)。
A p=a; B *p=a[0]; C p=&a[0]; D p=&a;
二 判断对错,对的划“√”,错的划“×”(20分,每小题2分)
1.参加位运算的数据可以是任何类型的数据。(× )
2.若有定义和语句:int a;char c;float f;scanf("%d,%c,%f",&a,&c,&f);若通过键盘输入:10,A,12.5,则a=10,c=‘A’,f=12.5。(√)12.500000
3.C语言把文件看作是一个字符(字节)的序列。(√ )
4.若有宏定义:#define S(a,b) t=a;a=b;b=t由于变量t没定义,所以此宏定义是错误的。(× )
5.在Turbo C中,下面的定义和语句是合法的:file *fp;fp=fopen("a.txt","r");( × )
6.若有定义:char s[ ]="china";则Turbo C系统为数组s开辟6个字节的内存单元。(√ )
7.若有定义和语句:int a[3][3]={{3,5},{8,9},{12,35}},i,sum=0;for(i=0;i<3;i++) sum+=a[i][2-i];则sum=21。(√ )
8.若有定义和语句:struct student { int num; char name[10]; float score;} s[5]={{1,"lili",98.5},{9,"xiaohua",66}},*p=s;printf("%d",*p++);输出结果是1。(× )
9.在程序中定义了一个结构体类型后,可以多次用它来定义具有该类型的变量。(√ )
10.在Turbo C中,此定义和语句是合法的:enum aa{ a=5,b,c}bb;bb=(enum aa)5;( √ )
答案
一 选择题(24分,每小题2分)
1.( B ) 2.( C ) 3.( B ) 4.( D ) 5.( D ) 6.( A )
7.( D ) 8.( A ) 9.( D ) 10.( B ) 11.( C ) 12.( D )
二 判断对错,对的划“√”,错的划“×”(20分,每小题2分)
1.( × ) 2.( √ ) 3.( √ ) 4.( × ) 5.( × )
6.( √ ) 7.( √ ) 8.( × ) 9.( √ ) 10.( √ )