当前位置:首页 » 编程语言 » 2017年c语言考试题库
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

2017年c语言考试题库

发布时间: 2023-05-21 21:42:37

c语言二级考试都考什么啊那里能找到题库!

C语言二级复习纲要
一、基本知识
1.c是高级语言,结构化程序设计语言
2.程序设计的五个部分
二、变量、常量、表达式
1.常量的值是不能改变的
2.标识符的定义方法
3.c语言中二进制和八进制、十六进制的表示方法
4.算术运算符的优先级别(++和--放在变量前后的区别)
5.c程序的基本构成结构(由函数构成,函数由基本结构构成)
三、顺序结构
1.printf的格式控制串中的格式控制字符和后面的数据在数量上要一一对应,类型要匹配
2.scanf的格式控制串中不要有多余字符,后面的数据是地址,如果是变量,前面要有&(取地址符)
3.两个%代表一个%
4.复合语句以及空语句
四、选择结构
if (表达式) 语句1;
else 语句2;

switch (表达式)
{ case….:……..;
.
.
.
case…:…….;}

1.关系表达式及优先级别
2.逻辑表达式及优先级别
3.关系,逻辑,算术优先级别的问题
4.if后面跟的表达式是判断真假的,switch是计算值的
5.if表达式后只能跟一个语句,如果要跟多个语句,必须用{ }括起来构成复合语句
6.switch里面的语句后面一定要跟break才能跳出switch,否则会一致执行下去
7.if语句中,语句1和语句2两个语句里面只能有一个语句被执行
五、循环结构
1.三种循环结构及其区别(while和do….while多用于循环次数未知的情况,for用于循环次数已知的情况)
2.循环中的三要素:初始值,结束条件,自增语句
3.break和continue的区别
六、字符
1.字符量是用单引号’引起来的一个字符,用双引号”引起来的字符是字符串
2.字符量等同于整形量
3.要使用putchar和getchar这两个函数,就必须在程序的开头使用#include “stdio.h”
4.连续输入
七、函数
1. 函数可以没有返回值,也可以有返回值,但是只能返回一个值,在函数中,一碰到return语句,函数立即结束,返回调用的地方
2. 函数的返回值也是有类型的,函数的首部要加以说明
3. 函数也必须遵循先定义后使用的原则
4. 函数的实际参数和形式参数必须一一对应,类型也要匹配,同时,参数是变量的,只能进行单向传递,即,参数值只能从主函数传递给函数,而不能从函数返回主函数,这种称之为:传值传递
八、指针
1. 存放地址的变量称为指针
2. “*”号在数据定义的时候作为指针定义符,在语句中作为间接引用
3. 指针一定要有指向,不能没有指向,指向空是有意义的]
4. 通过把指针作为函数参数,可以在主函数和函数之间传递数据,称之为:传地址传递
5. 指针每次移动,都移动一个单元,每个单元的长度是由指针的基类型确定的
6. 指向指针的指针是指:这个变量中存放的是指针的地址
7. 函数也可以返回指针,同样,要在函数首部定义
九、数组
1. 数组是一连串连续的存储单元的集合,他们是连续的
2. 把数组传递给函数,并且希望能改变其值,那么在函数的首部,用指针定义参数
3. 二维数组是一维数组的特殊形式,可以把二维数组看成每一个一维数组,每个元素都是一个一维数组。
4. 要把二维数组传递给函数,并且希望能改变其值,那么,在函数的首部,用一个行指针{(*sp)[ ]}来定义参数
5. 行指针和指针数组是不同的

行指针 指针数组
十、字符串
1. 字符串其实就是字符数组,一维字符数组可以存放一行字,而二维字符数组可以存放若干行字
2. 字符串的结束标志是\0,并且包含在字符串长度之内
3. 可以用字符指针指向一个字符串,其实就是指向字符数组的首地址
4. 字符串的输入输出使用puts和gets函数
十一、结构
1. 结构是一种特殊的用户自定义数据类型,他由若干个成员构成
2. 要引用成员,就要看使用什么来引用。用数据的话:结构体变量名.成员名。是指针的话:结构体指针-〉成员名
3. 成员符优先级别问题:高于++ ――
4. 传递结构体变量给函数,并且希望能改变其值,那么把该结构体变量的地址传递给函数,函数用该类型指针来接受结构体
5. 链表:在定义结构体变量的时候,在其中增加指向自己的指针,使得这种结构体变量能够指向同类型结构体变量,由这种变量首尾相连,就能构成链表。
6. 链表的建立、删除节点、增加节点,查找节点都要使用动态内存分配malloc和calloc,区别在于前者动态分配一个单元,而后者动态分配一系列单元
十一、文件
1. 文件的打开方法和打开方式及如何关闭
2. 如何对文件进行输入和输出
3. 文件指针及其操作函数

⑵ 大一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;x>y;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("%.3f\n", 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(a>0) 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=%d\n",x,y);
}
运行结果为:
程序有错,不能运行!或写:
x=2,y=1

2、写出程序运行结果。
#include<stdio.h>
int max(int a,int b)
{ int c;
c=a>b?a:b;
return(c);
}
int min(int a,int b)
{int c;
c=a<b?a:b;
return(c);
}
void main()
{ int a=2,b=6;
printf("max=%d\n",max(a,b));
printf(“min=%d\n”,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;i<3;i++)
for(j=0;j<3;j++)
if(i==j) sum=sum+a[i][j];
printf(“sum=%d\n”,sum);
}
运行结果为:
程序有错,不能运行!或写:
sum=15

4、写出程序运行结果。
void main( )
{ int n,f;
n=1;
while(n<=10)
{ f=f*n;
n+=2;
}
printf(“f=%d\n”,&f);
}
运行结果为:
程序有错,不能运行!或写:
f=不确定
五、程序设计题(共2题,每题13分,共26分)
1、将一个数组按逆序存放,如元素1、2、3、4、5,按逆序存放后为5、4、3、2、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语言上级题库

1.找出所有100以内(含100)满足I,I+4,I+10都是素数的整数I(I+10也在100以内)的个数cnt以及这些I之和sum。参考答案:#include <stdio.h>void main( ){ int i,j,k,cnt=0,sum=0; for(i=2;i<=90;i++) { k=1; for(j=2;j<i;j++) if(i%j= =0) {k=0;break;} for(j=2;j<i+4;j++) if((i+4)%j= =0) {k=0;break;} for(j=2;j<i+10;j++) if((i+10)%j= =0) {k=0;break;} if(k= =1) {cnt++;sum+=i;} } printf("%d\t%d\n",cnt,sum);}运行结果:7 201 2.求出ss字符串中指定字符c的个数,并返回此值。(注:大小写字母有区别) 例如,若输入字符串ss= 123412132 ,c='1',则输出3。参考答案:#include <stdio.h>#include <string.h>void main(){ char ss[100],c; int i,cnt=0; gets(ss); c=getchar(); for(i=0;i<strlen(ss);i++) if(ss[i]= =c) cnt++; printf("%d\n",cnt);} 3.把s字符串中的所有字母改写成该字母的下一个字符,字母z改写成字母a。要求大写字母仍为大写字母,小写字母仍为小写字母,其他字符不做派瞎改变。例如:s字符串中原有的内樱凳容为:Mn.123Zxy,则调用该函数后,结果为No.123Ayz。参考答案:#include <stdio.h>#include <string.h>void main(){ char s[100]; int i; gets(s); for(i=0;i<strlen(s);i++) { if((s[i]>='a'&&s[i]<'z')||(s[i]>='A'&&s[i]<'Z')) s[i]++; else if(s[i]= ='z'||s[i]= ='Z') s[i]-=25; } puts(s);} 4.把S字符串中的所有字符左移一个位置,串中的第一个字符移到最后.例如:S字符串中原有内容为:MN.123XYZ,则调用函数后,结果为:N.123XYZM.参考答案:#include <stdio.h>#include <string.h>void main(){ char s[100],temp; int i; gets(s); temp=s[0]; for(i=0;i<strlen(s)-1;i++) s[i]=s[i+1]; s[strlen(s)-1]=temp; puts(s);} 5.统计在TT字符串中'A'到'Z'26个字母各自现的次数,并存入PP数组.(仅统计小写字母。) 例如:当输入字符串:abcdefgabcdeabc后,输出的结果应该是:3 3 3 2 2 2 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 参考答案:#include <尘颂空stdio.h>#include <string.h>void main( ){ char TT[100]; int i,PP[26]={0}; gets(TT); for(i=0;i<strlen(TT);i++) PP[TT[i]-'a']++; for(i=0;i<26;i++) printf("%d\t",PP[i]);} 6.设A,B,C为三个不为零的正整数,计算并输出下列不定方程组解的个数CNT以及满足此条件的所有A,B,C之和SUM。 不定方程组为: A+B+C=13 A-C=5 参考答案:#include <stdio.h>void main(){ int a,b,c,cnt=0,sum=0; for(a=1;a<=13;a++) for(b=1;b<=13;b++) for(c=1;c<=13;c++) if(a+b+c= =13&&a-c= =5) { cnt++; sum+=a+b+c; printf("%d,%d,%d\n",a,b,c); } printf("%d\t%d\n",cnt,sum);}运行结果:6,6,17,4,28,2,33 39 7.选取出100以上1000以内所有个位数字与十位数字之和被10除所得余数恰是百位数字的素数(如293)。参考答案:#include <stdio.h>void main(){ int i,j; for(i=100;i<1000;i++) { for(j=2;j<i;j++) if(i%j= =0) break; if(j= =i&&(i%10+i/10%10)%10= =i/100) printf("%d\t",i); }}运行结果:101 211 239 257 293 349 367 431 523 541 569 587 743 761 853 8。将大于整数m且紧靠m的k个素数存入数组xx。例如:若输入17,5,则应输出:19,23,29,31,37。 参考答案:#include <stdio.h>void main(){ int xx[5],m,k,num=0,i,j; scanf("%d,%d",&m,&k); i=m+1; while(num<5) { for(j=2;j<i;j++) if(i%j= =0) break; if(j= =i) xx[num++]=i; i++; } for(i=0;i<5;i++) printf("%d\t",xx[i]);} 9。在三位整数(100至999)中寻找符合条件的整数并依次从小到大存入数组中;它既是完全平方数,又是两位数字相同,例如144、676等。参考答案:#include <stdio.h>void main(){ int xx[100]={0},i,k,t,a,b,c,cnt=0; for(i=100;i<1000;i++) { a=i%10; b=i/10%10; c=i/100; t=0; if(a= =b) t++; if(a= =c) t++; if(b= =c) t++; for(k=10;k<40;k++) if(k*k= =i&&t= =1) xx[cnt++]=i; } for(i=0;i<100&&xx[i];i++) printf("%d\t",xx[i]);}运行结果:100 121 144 225 400 441 484 676 900 10。某级数的前两项 =1, =1,以后各项具有如下关系: 下列程序的功能是:要求依次对于整数M=100,1000和10000求出对应的最小的n值,使其满足:Sn>=M,这里 Sn=A1+A2+...+An, 并依次把n值存入数组单元b[0],b[1]和b[2]中,最后把数组b[]中的值输出到out.dat文件中。 参考答案:#include <stdio.h>void main(){ int n,M[3]={100,1000,10000},b[3],i,s,A1,A2,t; FILE *fp; fp=fopen("out.dat","w"); for(i=0;i<3;i++) { A1=A2=1;s=0; s+=A1+A2; n=2; while(s<M[i]) { t=A1+2*A2; s+=t; A1=A2; A2=t; n++; } b[i]=n; } for(i=0;i<3;i++) fprintf(fp,"%d\n",b[i]); fclose(fp);}运行结果:71012

⑸ 2017年计算机二级C语言模拟题及答案(2)

大家做好准备迎接考试了吗?诚意整理“2017年计算机二级C语言模拟题及答案(2)”,欢迎广大考生前来学习。

2017年计算机二级C语言模拟题及答案(2)

1). 若变量已正确定义并赋值,以下符合C语言语法的表达式是

A.a:=b+1

B.a=b=c+2

C.int 18.5%3

D.a=a+7=c+b

正确答案:B

答案解析:选项A中包含一个不合法的运算符":=";选项C应改为(int)18.5%3;选项D可理解为两个表达式:a+7=c+b和a=a+7,其中第一个是错的,因为C语言规定赋值号的左边只能是单个变量,不能是表达式或常量等。因此,正确答案是选项B,它实际上相当于a=(b=c+2),进而可分解为两个表达式:b=c+2和a=b。

2). 结构化程序设计的基本原则不包括( )

A.多元性

B.自顶向下

C.模块化

D.逐步求精

正确答案:A

答案解析:结构化程序设计方法的主要原则可以概括为:自顶向下,逐步求精,模块化和限制使用GOTO语句,其中不包括多态性。

3). 下面选项中关于位运算的叙述正确的是( )

A.位运算符都需要两个操作数

B.左移运算的结果总是原操作数据2倍

C.右移运算时,高位总是补0

D.位运算的对象只能是整型或字符型数据

正确答案:D

答案解析:位运算则是以位(bit)一级进行的运算,位运算符中除″~″以外,均为二元运算符,即要求两侧各有一个运算量,运算量只能是整型或字符型的数据,不能为实型数据。其中右移时,右端(低位)移出的二进制数舍弃,左端(高位)移入的二进制数分两种情况:对于无符号整数和正整数,高位补0;对于负整数,高位补1。而左移运算在没有溢出的前提下每移动一位,相当于原数据的2倍。

4). 定义无符号整数类为UInt,下面可以作为类UInt实例化值的是( )

A.-369

B.369

C.0.369

D.整数集合{1,2,3,4,5}

正确答案:B

答案解析:UInt表示的是无符号整数类,所以它的每个实例都是一个无符号整数,所以排除选项A和选项C,选项D是整数集合,所以也排除。

5). 下列关于类、对象、属性和方法的叙述中,错误的是( )。

A.类是对一类具有相同的属性和方法对象的描述

B.属性用于描述对象的状态

C.方法用于表示对象的行为

D.基于同一个类产生的两个对象不可以分别设置自己的属性值

正确答案:D

答案解析:类是对一类具有相同的属性和方法对象的描述,属性用于描述对象的状态,方法用于表示对象的行为,基于同一个类产生的两个对象是可以分别设置自己的属性值。

6). 下列描述中正确的是( )

A.软件交付使用后还需要再进行维护

B.软件工具交付使用就不需要再进行维护

C.软件交付使用后其生命周期就结束

D.软件维护是指修复程序中被破坏的指令

正确答案:A

答案解析:通常将软件产品从提出、实现、使用维护到停止使用退役的过程称为软件生命周期。软件生命周期分为软件定义、软件开发及软件运行维护三个阶段。已交付的软件投入运行后,应在运行使用中不断地维护,根据新提出的需要进行必要而且可能的扩充和删改。

7). 数据库设计包括两个方面的设计内容,它们是

A.概念设计和逻辑设计

B.模式设计和内模式设计

C.内模式设计和物理设计

D.结构特性设计和行为特性设计

正确答案:A

答案解析:数据库设计包括数据库概念设计和数据库逻辑设计两个方面的内容。

8). 以下不能输出字符A的语句是(注:字符A的ASCII码值为65,字符a的ASCII码值为97)( )

A.printf (″%c ″, ′a′-32);

B.printf (″%d ″, ′A′);

C.printf (″%c ″, 65);

D.printf (″%c ″, ′B′-1);

正确答案:B

答案解析:在选项B的输出函数中,大写字符′A′以整型数据的形式输出。

9). 下列描述中正确的是( )

A.程序就是软件

B.软件开发不受计算机系统的限制

C.软件既是逻辑实体,又是物理实体

D.软件是程序、数据与相关文档的集合

正确答案:D

答案解析:计算机软件与硬件是计算机系统中相互依存的两部分。计算机软件是包括程序、数据及相关文档的完整集合。软件由两部分组成:一部分是机器可执行的程序和数据;二是机器不可执行的,与软件开发、运行、维护、使用等有关的文档。软件具有以下六个特点:①软件是一种逻辑实体,而不是物理实体,具有抽象性。②软件的生产与硬件不同,它没有明显的制作过程。③软件在运行、使用期间不存在磨损、老化问题。④软件的开发、运行对计算机系统具有依赖性,受计算机系统的限制,这导致了软件移值的问题。⑤软件复杂性高,成本昂贵。⑥软件的开发涉及诸多社会因素。

10). 以下不合法的用户标识符是( )。

A.804zhang

B._ hh

C.yy614

D.If

正确答案:A

答案解析:C语言规定,标识符是由字母、数字或下划线组成,并且它的第一个字符必须是字母或下划线。

⑹ 求c语言题库

编程题:
用编写C语言程序实现下面目的:

键盘输入圆柱的底半径r和高h,计算表面积S和体积V并输出。输入输出时要有文字说明,输出数取小数点后2位数字。
键盘输入三个数,编写程序将他们从大到小输出。
键盘输入一个字符,如果它是大写字母,则把它变成小写字母输出;若它是小写字母,则变成大写字母输出;其它字符不改变输出。编写程序实现这一过程。
编写程序实现以下函数功能:(求平方函数sqrt()在头文件math.h中包含,a的值用scanf函数从键盘输入)
编程实现:键盘输入一个整数,判断它是否能被3,5,7整除,并输出以下信息之一:
(1) 能同时被3,5,7整除;
(2) 能被其中两个数(要指出那两个)整除;
(3) 能被其中一个数(要指出那个数)整除;
(4) 不能被3,5,7整除。
编程实现:键盘读入两个数(data1和data2)及一个运算符(op),计算表达式
data1 op data2
的值,其中op可以是 +、-、*、/中的一种。例如:
输入: 1+2
输出:1.000000+2.000000=3.000000
输入: 1.0/2
输出:1.000000/2.000000=0.500000
输入: 3*2.5
输出:3.000000*2.500000=7.500000
等等
有1020个西瓜,第一天卖出一半多两个,以后每天卖剩下的一半多两个,编程求到第几天卖完。
键盘输入一串字符,计算其中的元音字符的个数和辅音字母的个数。例如输入:
I am a boy. You are a girl. 则元音有10个,辅音有8个,等等。输入时以回车(‘\n’)作为结束。
编程计算1-3+5-7+…-99+101的值。
从键盘输入6名学生的各5科成绩,分别统计并输出每个学生的平均成绩。
(每输入一个学生的5科成绩,就要输出他的平均成绩,输入输出要有提示。

例如:

请输入第1个人的成绩:

34

45

67

78

79

他的平均成绩为:?

请输入第2个人的成绩:………………)

从键盘输入若干整数(数据至多100个),其值在0至4范围,用-1作为输入结束标志,统计每个整数的个数。
输出完整的乘法九九表:
1*1=1
1*2=2 2*2=4
1*3=3 2*3=6 3*3=9
1*4=4 2*4=8 3*4=12 4*4=16
1*5=5 2*5=10 3*5=15 4*5=20 5*5=25
……
13. 键盘输入一个字符串,反序输出。
例如输入: "How are you!"
则输出: "!uoy era woH"
若输入: "Holle the world!"
则输出: "!dlrow eht elloH"
等等

14. 编写程序,将键盘输入的两个字符串(str1和str2)连接起来,不要用strcat函数。
例如输入:str1:"I am a boy."
str2:"You are a girl."
连接后输出:
"I am a boy. You are a girl ."

15. 键盘输入十个数,用起泡法对它们由小到大排序。

16. 输出ASCII码为33~127字符的列表。输出方式:每行输出5个字符信息;对于每个字符,先输出十六进制转义字符方式,再输出普通字符方式。例如:
’\x21’ ! ‘\x22’ “ ‘\x23’ # ‘\x24’ $ ‘\x25’ %
等等。其中’\x21’中,单引号(’)、斜线(\)和字符x也要输出。

17. 输入某一科学生成绩,学生数少于100人,当输入成绩为0时结束输入。然后:
(1) 求成绩平均值xx;
(2) 求平均相对误差wucha_x。方法:wucha_x=(|x[0]-xx|+|x[1]-xx|+…+|x[n-1]-xx|)/n
其中n是学生个数,求绝对值函数fabs()在头文件math.h中包含。

第八章函数:

已有变量定义和函数调用语句:
int a, b, h, l;
h=hcf(a, b); l=lcd(a,b);
hcf函数的作用是求两个数的最大公约数,lcf函数的作用是求两个数的最小公倍数。要求在主函数中从键盘输入两个整数分别赋值给变量a,b,然后调用两个函数求出最大公约数和最小公倍数,最后由主函数输出结果。
已有变量定义和函数调用语句:
char str1[80],str2[80];
cpy(str1,str2);
cpy函数的作用是找出str1中的元音字母然后复制到str2中。要求在主函数中实现字符串的输入,并存放到字符数组str1中,函数调用后输出字符数组str1和str2中的内容。
给出年、月、日,计算该日是该年中的第多少天。其中计算过程由函数实现。
输入长方形的长a和宽b的值,通过一个函数调用计算出长方形的周长c和面积s,在主函数中输出长方形的周长和面积值。
已有变量定义语句
double a;int n;
和函数调用语句
mypow(a,b);
要求编写程序,用递归法求出a的n次方的值
写一个函数,实现用“选择法”对输入的10个字符按由小到大的顺序排列。在主函数中调用该函数并输出排序后的结果。
写一个函数,实现用“起泡法“对输入的10个字符按由大到小的顺序排列。在主函数中调用该函数并输出排序后的结果。
编写程序,要求从键盘输入月份号,输出该月的英文名字。例如,输入‘3’,则输出“Match”,输出要求用函数实现。

第十章指针

编一程序,将字符串中的第m个字符的全部字符复制成另一个字符串。要求在主函数中输入字符串及m的值并输出复制结果,在被调用函数中完成复制。(形参与实参均用指针变量)
用“起泡法”对输入的十个整数按由小到大的顺序排序。(对数组中各元素的操作要求用指针的方法)
编一程序,统计从键盘输入的命令行中第二个参数所包含的英文字符个数。
输入一行字符,要求找出其中大写字母、小写字母、空格、数字以及其他字符各有多少个?(要求用指针方法实现)
输入10个数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换,要求写3个函数,分别实现
①输入10个数,
②进行处理,
③输出10个数。
编一程序,将字符串computer赋给一个字符指针,然后从第一个字母开始间隔地输出该串。要求用指针完成。
编一程序,要求从键盘输入两个数,通过函数调用比较两个数的大小,并把大数返回给主调函数,输出这个数。(要求两个变量的地址作为实参)

补充题目:

编写一个函数,统计出一个整数中包含的某一个数字的个数,例如:11254中包含有1个2。

求100以内的全部素数,每行输出10个数。要求判断一个数是否是素数由函数实现。

有36块砖,共36人搬,成年男子一次搬4块砖,成年女子一次搬3块砖,儿童两人抬1块砖,恰好一次全部搬完,编程求出成年男子、成年女子和儿童各多少人。

程序的功能是求三个数的最小公倍数。

max(int x,int y,int z)

{

If(x>y&&x>z) return(x);

else if(y>=x&&y>z) ;

else return(z);

}

main()

{

int a,b,c,i=1,j,s;

scanf(“%d%d%d”,&a,&b,&c);

s= ;

while(1)

{

j=s*i;

if( )

break;

i++;

}

printf(“%d”,j);

}

下面程序用于计算n!的值

main()

{

int i,s,n;

s=1;

printf(“enter n:”);

scanf(“%d”,&n);

for(i=1;i<=n;i++)

;

printf(“s=%d”,s);

}

阅读下面的程序,其结果为( )。
#include <stdio.h>
main()
{
char c=’A’;
if(‘0’<=c<=’9’)
printf(“YES”);
else
printf(“NO”);
}
A.YES B.NO
C.YESNO D.语句错误

⑺ 计算机二级c语言题库及答案

⑻ 全国计算机等级考试二级C语言历年试题及答案

这里有一份最全的考研历年真题资料分享给你

链接:

提取码:w2wt

通过不断研究和学习历年真题,为考生冲刺阶段复习提分指点迷津,做真题,做历年真题集,对照考纲查缺补漏,提高实战素养,制定做题策略,规划方向;

若资源有问题欢迎追问!

⑼ C语言习题请高手帮忙解答,急。

if(i%2)就是i除以2的余数是否为0
为0则打印*否则返回for();语句
程序输出为#*#*#$加上回车符