当前位置:文档之家› c语言练习题 2

c语言练习题 2

c语言练习题 2
c语言练习题 2

1停车场收费问题

一个停车场的标准收费是3小时之内收5元,超过3小时,每增加1小时加收2元;如果时间不是整数,按比例收取,例如:如果输入为3.6小时,则费用为5 + (3.6-3)*2 = 6.2 元。最高收费为40元。假设任何车辆的停车时间都不超过24小时。编写程序,计算每辆车的停车费。(注意输出结果小数点后保留两位)

输入

#include

int main()

{

double m,x;

printf("输入停车时间x:");

scanf("%lf",&x);

if(x<=24)

{

if(x<3.0)

{m=5.0;

printf("%lf\n",m);}

else if(x>3.0)

{ m=5.0+2.0*(x-3.0);

if(m<=40)

printf("%lf\n",m);}

}

else

printf("输出停车费用40元\n");

return 0;

2.#include

int main()

{ double x,m;

printf("输入停车时间(x):");

scanf("%lf",&x);

if(x<=24)

{

if(x<=3.0)

printf("停车费用5元\n");

if(x>3)

m=5.0+2.0*(x-3.0);

if(m<=40)

printf("%6.2f\n",m);}

else

printf("停车费用40元\n");

}

}

2 计算细菌数量

一种细菌的繁殖速度是每天成倍增长。例如:第一天有10个,第二天就

变成20个,第三天变成40个,第四天变成80个,……。现在给出第一

天的日期和细菌数目,要你写程序求出到某一天的时候,细菌的数目。

3 计算邮资计算邮资:

用户输入:邮件的重量,以及是否加快

计算规则:重量在1克以内(包括1克), 基本费0.8元。超过1克的部分,按照0.5元/克的比例加收超重费。

如果用户选择加快,多收2元。#include

using namespace std;

int main()

{double x,sum;

char exp;

while(cin>>x>>exp)

{

if(x<=1&&exp=='n')

sum=0.8;

if(x<=1&&exp=='y')

sum=2.8;

if(x>1&&exp=='n')

sum=0.8+(x-1)*0.5;

if(x>1&&exp=='y')

sum=0.8+(x-1)*0.5+2;

cout<

}

return0;

}

#include

using namespace std;

int main()

{

int x,y; //变量定义,此处假设需要定义两个变量,均定义为整型

while(cin>>x>>y)

{

你对一组输入的一次处理过程代码

}

return 0;

}

C:

#include

using namespace std;

int main()

{

int x,y; //变量定义,此处假设需要定义两个变量,均定义为整型

while(scanf(%x %y",&x,&y)!=EOF)

{

你对一组输入的一次处理过程代码

}

return 0;

}

注意:考虑以下几点,然后直接套用模版就行了:

i) 变量定义。

ii) 有几个变量需要输入,在while中cin相应的变量。

iii) 开始考虑主程序代码,在“{}”中写一次处理过程的代码即可。

4学分绩点计算

北京大学对本科生的成绩施行平均学分绩点制(GPA)。既将学生的实际考分根据不同的学科的不同学分按一定的公式进行计算。

公式如下:

实际成绩绩点

90——100 4.0

85——89 3.7

82——84 3.3

78——81 3.0

75——77 2.7

72——74 2.3

68——71 2.0

64——67 1.5

60——63 1.0

60以下 0

1.一门课程的学分绩点=该课绩点*该课学分

2.总评绩点=所有学科绩点之和/所有课程学分之和

现要求你编写程序求出某人A的总评绩点(GPA)

。#include

int main()

{

int str1[10],str2[10],n,i;//定义两个数组分别表示每门课的学分,所得绩点

double h,GPA,sum=0,s=0;//定义双精度变量h表示学分,GPA总评绩点,sum表示所有学科绩点之和,s表示所有课程学分之和。

scanf("%d",&n);

for(i=0;i

{

scanf("%d",&str1[i]);

s=s+str1[i];

}

for(i=0;i

{

scanf("%d",&str2[i]);

if(str2[i]<=100&&str2[i]>=90)

h=4.0;

else if(str2[i]<=89&&str2[i]>=85)

h=3.7;

else if(str2[i]<=84&&str2[i]>=82)

h=3.3;

else if(str2[i]<=81&&str2[i]>=78)

h=3.0;

else if(str2[i]<=77&&str2[i]>=75)

h=2.7;

else if(str2[i]<=74&&str2[i]>=72)

h=2.3;

else if(str2[i]<=71&&str2[i]>=68)

h=2.0;

else if(str2[i]<=67&&str2[i]>=64)

h=1.5;

else if(str2[i]<=63&&str2[i]>=60)

h=1.0;

else

h=0;

sum=sum+h*str1[i];

GPA=sum/s;

}

printf("%.2f\n",GPA);

return 0;

}

5一个笼子里面关了鸡和兔子(鸡有2只脚,兔子有4只脚,没有例外)。

已经知道了笼子里面脚的总数a,问笼子里面至少有多少只动物,至多有多少只动物

#include

int main()

{

int a,min,max,s;

scanf("%d",&s);

while(s>=1)

{

scanf("%d",&a);

if(a%2==1)

{

min=0;

max=0;

}

else

if(a%4==0)

{

min=a/4;

max=a/2;

}

else

{

min=(a-2)/4+1;

max=a/2;

}

printf("%d %d\n",min,max);

s--;

}

return 0;

}

5

通过指针变量访问整型变量

#include

int main()

{

int a=100,b=10; //定义整型变量a,b并初始化

int*pointer_1,*pointer_2; //定义指向整型数据的指针变量pointer_1,pointer_2;

pointer_1=&a; //把变量a的地址赋给指针变量pointer_1 pointer_2=&b; //把变量b的地址赋给指针变量

pointer_2

printf("a=%d,b=%d\n",a,b); //输出变量a和b的值

printf("*pointer_1=%d,*pointer_2=%d\n",*pointer_1,*pointer_2);//输出变量a和b 的值

return 0;

}

6输入a和b两个整数,按先大后小的顺序输出a和b

#include

int main()

{

int *pointer_1,*pointer_2,*pointer_3,a,b;//*pointer_1,*pointer_2的类型是指向整型的指针变量

printf("please enter two integer numbers:");

scanf("%d,%d",&a,&b);//输入两个整数

pointer_1=&a;//使p1指向变量a

pointer_2=&b;//使p2指向变量b

if(a

{pointer_3=pointer_1;//将p1,p2的值互换

pointer_1=pointer_2;

pointer_2=pointer_3;

}

printf("a=%d,b=%d\n",a,b);//输出a,b

printf("max=%d,min=%d\n",*pointer_1,*pointer_2);//输出p1,p2所指向变量的值

return 0;

}

7,函数嵌套调用

输入3个整数,要求由大到小输出,用函数调用。

#include

int main()

{

void exchange(int *q1,int *q2,int *q3);

int a,b,c,*p1,*p2,*p3;

printf("please enter three numbers:");

scanf("%d,%d,%d",&a,&b,&c);

p1=&a;

p2=&b;

p3=&c;

exchange(p1,p2,p3);

printf("the older is\n: ");

return 0;

}

void exchange(int *q1,int *q2,int *q3)

{

void swap(int *pt1,int *pt2);

if(*q1<*q2) swap(q1,q2);

if(*q1<*q3) swap(q1,q3);

if(*q2<*q3) swap(q2,q3);

}

void swap(int *pt1,int *pt2)

{int temp;

temp=*pt1;

*pt1=*pt2;

*pt2=temp;

}

8,改写大小写,要求从键盘输入大写字母,从显示器上输出小写字母

#include

int main()

{

char c1,c2;

c1=getchar();

c2=c1+32;

putchar(c2);

putchar('\n');

return 0;

}

9输入三个数,a,b,c要求按由小到大顺序输出。

#include

int main()

{

float a,b,c,t;

printf("please enter three numbers :");

scanf("%f,%f,%f",&a,&b,&c);

if(a

{t=a; 按由小到大必须是‘a>b’形式交换位置使小的在前,若按由大到小则是‘a

a=b;

b=t;

}

if(a

{t=a;

a=c;

c=t;

}

if(b

{t=b;

b=c;

c=t;

}

printf("%5.2f,%5.2f,%5.2f",a,b,c);

return

10给定一个正整数k(1

输入

13#include

int main()

{

int k,m=0,i=1;

scanf("%d",&k);

if(1

{

while(i<=k)

{

m=m+i*i*i;

i+=1;

}

printf("%d",m);

}

else

printf("error");

return 0;

}

用一个字符串表示一段基因,例如:“CTATGGGTTT”。两段基因的相似度定义为它们所包含的最大公共子串的长度。例如:“CCTTGG”和“TGGGC”的最大公共子串为“TGG”,它的长度为3,则我们称“CCTTGG”和“TGGGC”的相似度为3。现给定两段基因,要求计算它们的相似度。

1

11晶晶的朋友贝贝约晶晶下周一起去看展览,但晶晶每周的1、3、5有课必须上课,请帮晶晶判断她能否接受贝贝的邀请,如果能输出OK;如果不能则输出NO

#include

#include

void main()

{

int w,c,y,m,d; //c世纪y年w星期d日m月;

scanf("%d%d%d",&y,&m,&d);

c=y/100; y= y - c * 100; //分离世纪与年;

if(m==1)

{

m=13;

if(y==00)

{

y=99;

c--;

}

y--;

}

if(m==2)

{

m=14;

if(y==0)

{

y=99;

c--;

}

y--;

}

w=y+y/4+c/4-2*c+26*(m+1)/10+d-1; // 蔡勒公式

switch(w % 7)

{

case 1:

case 3:

case 5: printf("NO\n");break;

case 2:

case 4:

case 6:

case 0: printf("YES\n");break;

}

}

12求一个长度不大于100的字符串的长度,要求不使用strlen方法,并且使用到字符指针。

原文地址:1023--求字符串长度作者:小礼子地盘

求一个长度不大于100的字符串的长度,要求不使用strlen方法,通过自定义的#include

int main()

{

int length(char *p);

int len;

char str[100];

gets(str);

len=length(str);

printf("%d\n",len);

return 0;

}

int length(char *p)

{

int n;

n=0;

while(*p!='\0')

{

n++;

p++;

}

return (n);

}函数实现字符串长度的计算。

函数定义为:int GetStrLen(char *pStr)

Input

一行字符串,使用(gets(str)方法读取此行字符串)。

Output

输出只有一行,只包含一个整数,表示字符串的长度。

具体程序:

#include

main() { char a[101];

int sum=0,i; gets(a);

for(i=0;a[i]!=''; i++)

sum++;

printf("%dn",sum);

}

描述

求前n(1

题目:有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。

#include

main()

{ int i,x,y,a;

float sum=0;

x=2;

y=1;

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

{

sum+=(float)(x)/y;

// printf("%d/%d\n",x,y);

a=x;

x=x+y;

y=a;

}

printf("%7.5f\n",sum);

}

12在北大校园里,没有自行车,上课办事会很不方便.但实际上,并非去办任何事情都是骑车快,因为骑车总要找车、开锁、停车、锁车等,这要耽误一些时间.假设找到自行车,开锁并车上自行车的时间为27秒;停车锁车的时间为23秒;步行每秒行走1.2米,骑车每秒行走3.0米.请判断走不同的距离去办事,是骑车快还是走路快. #include

int main()

{

int n,i,s;

double t1,t2;

scanf("%d",&n);

while(n>=1)

{

scanf("%d",&s);

t1=s/1.2;

t2=s/3.0+50;

if(t1>t2)

printf("Bike\n");

if(t1

printf("Walk\n");

if(t1==t2)

printf("All\n");

n--;

}

return 0;

}

#include

void main()

{ int k,j;

float a[1]={0},t1[10],t2[10];

scanf("%d",&k); for(j=1;j<=k;j++)

{scanf("%f",&a[0]);

t1[j]=50+a[0]/3;

t2[j]=a[0]/1.2;}

for(j=1;j<=k;j++)

{if(t1[j]

printf("Bike\n");

else if(t2[j]

printf("Walk\n");

else printf("All\n");

}

}

13一张CT扫描的灰度图像可以用一个N*N(0

#include

int main()

{

int a[100][100],i,j,n,mj=0,zc=0;

scanf("%d",&n);

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

for(j=0;j<=n-1;j=j+1)

scanf("%d",&a[i][j]);

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

{

for(j=0;j<=n-1;j=j+1)

{

if(a[i][j]<=50)

mj=mj+1;

if((i==0||j==0||i==n-1||j==n-1)&&a[i][j]<=50)

zc=zc+1;

else

{

if(((a[i][j+1]>50)||(a[i][j-1]>50)||(a[i+1][j]>50)||(a[i-1][j ]>50))&&(a[i][j]<=50))

zc=zc+1;

}

}

}

printf("%d %d\n",mj,zc);

return 0;

}

14给定一个正整数k(1

int main()

{

int i,k,sum=0;

scanf("%d",&k);

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

sum=sum+i*i*i;

printf("%d\n",sum);

return 0;

}

求前n(1

输入

#include

int main()

{

int n,i,t,r;

r=0;t=1;

scanf("%d",&n);

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

{

t=t*i;

r=r+t;

}

printf("%d\n",r);

return 0;

}

15有一个分数序列2/1,3/2,5/3,8/5,13/8,21/13,.... 求这个分数序列的前n项之和。#include

int main()

{

int i,n;

double sum=0,a=1,b=2,t;

scanf("%d",&n);

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

{

sum=sum+b/a;

t=b;

b=a+b;

a=t;

}

printf("%.4lf\n",sum);

return 0;

}

16一个数如果恰好等于它的因子之和,这个数就成为“完数”。例如,6的因子为1、2、3,而6=1+2+3,因此6是“完数”。编程序打印出1000之内(包括1000)所有的完数,并按如下格式输出其所有因子:

#include

int main()

{

int i,j,sum=0;

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

{

for(j=1;j<=i/2;j++)

if(i%j==0)

sum=sum+j;

if(sum==i)

{

printf("%d its factors are ",i);

{

for(j=1;j

if(i%j==0)

printf("%d,",j);

if(i%(i/2)==0)

printf("%d",i/2);

printf("\n");

}

}

sum=0;

}

return 0;

}

17将一个数组中的值按逆序重新存放。例如,原来的顺序为8,6,5,4,1。要求改为1,4,5,6,8。

#include

int main()

{

int a[100],i,b[100],k;

scanf("%d",&k);

for (i=0;i

scanf("%d",&a[i]);

for(i=0;i

b[k-i-1]=a[i];

for(i=0;i

printf("%d ",b[i]);

printf("\n");

return 0;

}

18在一个字符串中找出元音字母a,e,i,o,u出现的次数。

#include

int main()

{

int q=0,w=0,r=0,t=0,y=0,k;

char s[80];

gets(s);

for(k=0;s[k]!='\0';k++)

{

if(s[k]=='a')

q++;

if(s[k]=='e')

w++;

if(s[k]=='i')

r++;

if(s[k]=='o')

t++;

if(s[k]=='u')

y++;

}

printf("%d %d %d %d %d\n",q,w,r,t,y);

return 0;

}

19把一个字符串中所有出现的大写字母都替换成小写字母,同时把小写字母替换成大写字母。

#include

int main()

{

int i;

char s[80];

gets(s);

for(i=0;s[i]!='\0';i++)

{

if(s[i]>=65&&s[i]<=90)

s[i]=s[i]+32;

else

if(s[i]>=97&&s[i]<=122)

s[i]=s[i]-32;

}

printf("%s\n",s);

return 0;

}

20在一个整数数组上,对于下标为i的整数,如果它大于所有它相邻的整数,或者小于所有它相邻的整数,则称为该整数为一个极值点,极值点的下标就是i。

#include

void main()

{

int m,n,a[100][100],i,j;

scanf("%d",&m);

for(i=0;i

{

scanf("%d",&n);

for(j=0;j

scanf("%d",&a[i][j]);

}

for(i=0;i

{

for(j=0;a[i][j]!='\0';j++)

if((a[i][j]a[i][j-1] &&a[i][j]>a[i][j+1])||(a[i][j]!=a[i][j-1]&&a[i][j+1]=='\0')||(a[i][j] !=a[i][j+1]&&j==0))

printf("%d ",j);

printf("\n");

}

}

21给定2到15个不同的正整数,你的任务是计算这些数里面有多少个数对满足:数对中一个数是另一个数的两倍。

#include

void main()

{

int t,i,a[1000][16],j,row,col[1000],k;

for(i=0;i<1000;i++)

{

scanf("%d",&a[i][0]);

if(a[i][0]==-1)

break;

for(j=1;j<16;j++)

{

scanf("%d",&a[i][j]);

if(a[i][j]==0)

{

col[i]=j;

break;

}

}

}

row=i;

for(i=0;i

{

t=0;

for(j=0;a[i][j]!=0;j++)

for(k=0;a[i][k]!=0;k++)

{

if(a[i][j]==2*a[i][k])

t++;

}

printf("%d\n",t);

}

}

22陶陶家的院子里有一棵苹果树,每到秋天树上就会结出10个苹果。苹果成熟的时候,陶陶就会跑去摘苹果。陶陶有个30厘米高的板凳,当她不能直接用手摘到苹果的时候,就会踩到板凳上再试试。现在已知10个苹果到地面的高度,以及陶陶把手伸直的时候能够达到的最大高度,请帮陶陶算一下她能够摘到的苹果的数目。假设她碰到苹果,苹果就会掉下来。

#include

int main()

{

int s[10],i,h,j=0,g;

for(i=0;i<10;i++)

{

scanf("%d",&s[i]);

}

scanf("%d",&g);

for(i=0;i<10;i++)

if((g+30)>=s[i])

j++;

printf("%d\n",j);

return 0;

}

23描述

一张CT扫描的灰度图像可以用一个N*N(0

#include

int main()

{

int a[100][100],i,j,n,mj=0,zc=0;

scanf("%d",&n);

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

for(j=0;j<=n-1;j=j+1)

scanf("%d",&a[i][j]);

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

{

for(j=0;j<=n-1;j=j+1)

{

if(a[i][j]<=50)

mj=mj+1;

if((i==0||j==0||i==n-1||j==n-1)&&a[i][j]<=50)

zc=zc+1;

else

{

if(((a[i][j+1]>50)||(a[i][j-1]>50)||(a[i+1][j]>50)||(a[i-1][j ]>50))&&(a[i][j]<=50))

zc=zc+1;

}

}

}

printf("%d %d\n",mj,zc);

return 0;

}

24a的立方= b的立方+ c的立方+ d的立方为完美立方等式。例如12的立方= 6的立方+ 8的立方+ 10的立方。编写一个程序,对任给的正整数N (N≤100),寻找所有的四元组(a, b, c, d),使得a的立方= b的立方+ c的立方+ d的立方,其中a,b,c,d 大于1, 小于等于N。

#include

int main()

{

int a,b,c,d,k;

scanf("%d",&k);

for(a=1;a<=k;a++)

for(b=2;b<=k-3;b++)

for(c=b+1;c<=k-2;c++)

for(d=c+1;d

if(a*a*a==b*b*b+c*c*c+d*d*d)

printf("Cube = %d, Triple = (%d,%d,%d) \n",a,b,c,d);

printf("\n");

return 0;

}

25一个正整数,如果它能被7整除,或者它的十进制表示法中某个位数上的数字为7,则称其为与7相关的数.现求所有小于等于n(n<100)的与7无关的正整数的平方和.

#include

int main()

{

int i,n,t=0;

scanf("%d",&n);

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

{

if(i%7!=0&&i%10!=7&&(i-i%10)/10!=7)

t=t+i*i;

}

printf("%d\n",t);

return 0;

}

26给定一组整数,要求利用数组把这组数保存起来,再利用指针实现对数组中的数循环移动。假定共有n个整数,则要使前面各数顺序向后移m个位置,并使最后m各数变为最前面的m各数。

注意,不要用先输出后m个数,再输出前n-m个数的方法实现,也不要用两个数组的方式实现。

要求只用一个数组的方式实现,一定要保证在输出结果时,输出的顺序和数组中数的顺序是一致的。

#include

int main()

{

void move(int [20],int ,int );

int number[20],n,m,i;

scanf("%d %d",&n,&m);

for(i=0;i

scanf("%d",&number[i]);

move(number,n,m);

for(i=0;i

printf("%d ",number[i]);

return 0;

}

void move(int array[20],int n,int m)

{

int *p,array_end;

array_end=*(array+n-1);

for(p=array+n-1;p>array;p--)

*p=*(p-1);

*array=array_end;

m--;

if(m>0)

move(array,n,m);

}

C语言试卷2及答案

扬州大学试题纸 系课程 C语言程序设计(A)卷2002—2003学年第2学期 班级_________学号________姓名__________得分___________ 一、选择题(每题分,共30分): 1、已知:char a; int b; float c; double d; 则执行语句:c=a+b+c+d; 后,变量c的类型为。 A. char B. int C. float D. double 2、已有定义int x; float y; 且执行scanf(“%2d%f”,&x,&y);语句时, 从第一列开始输入数据12345 67<回车>,则y的值是。 A. 无定值 B. 345.00000 C. D. 3、设有以下程序段 int x=0; s=0; while (!x!=0) s+=++x; printf(“%d”,s); 则。 A. 运行程序段后输出0 B. 运行程序段后输出1 C. 程序段中的控制表达式是非法的 D. 程序段执行无限次 4、若i为整型变量,则以下循环执行次数是。 for(i=2; i==0;) printf(“%d”, i--); A. 无限次 B. 2次 C. 1次次 5、假设char ch=’a’, *p=&c h; ,以下语句中,有语法错误的是 . A. (*p)++; B. ch+=—‘a’+’A’; C. toupper(ch)=ch; D. ch++; 6、若说明:char *language[ ]={“VFP”,”C”,”VB”,”VC”,”JAVA”}; 则language[2]的值是。 A. 一个字符 B. 一个地址 C. 一个字符串 D. 一个不定值 7、C语言程序中,当调用函数时。 A. 实参和虚参可以共用存储单元 B. 实参和虚参各占一个独立的存储单元 C. 可以由用户指定是否共用存储单元 D. 由计算机系统自动确定是否共用存储单元 8、在程序中要使用语句:printf(“%s\n”, STRING); 输出提示信息:“OK! ”(包括双引号),则应使用宏定义语句。 A. #define STRING “OK!” B. #define STRING “”OK!”” C. #define STRING \”OK!\” D.以上三个答案都是错误的 9、数组和链表都可以用于存储一组数据,以下说法不正确的是_____________。 A. 数组占用连续的一块存储区域,链表可能占用若干不连续的存储区域 B. 数组和链表所占用的存储区域均不能在程序运行期间动态分配 C. 数组中的数据可以随机存取或顺序存取,链表中的数据只能顺序存取 D. 数组的长度是固定的,链表的长度是不固定的。 10、已知语句FIL E *fp; char ch= ‘c’;fp=fopen(“”,”w”);如果需要将ch的值保存到一个磁盘文件中,

全国计算机等级考试二级C语言真题

2009年3月二级C语言笔试真题((1)—(10)每小题2分,(11)—(50)每题1分,共60分) 下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上,答在试卷上不得分。 (1)下列叙述中正确的是 A)栈是“先进先出”的线性表 B)队列是“先进先出”的线性表 C)循环队列是非线性结构 D)有序性表既可以采用顺序存储结构,也可以采用链式存储结构 (2)支持子程序调用的数据结构是 A)栈B)树C)队列D)二叉树 (3)某二叉树有5个度为2的结点,则该二叉树中的叶子结点数是 A)10B)8C)6D)4 (4)下列排序方法中,最坏情况下比较次数最少的是 A)冒泡排序 B)简单选择排序 C)直接插入排序 D)堆排序 (5)软件按功能可以分为:应用软件、系统软件和支撑软件(或工具软件)。下面属于应用软件的是 A)编译软件 B)操作系统 C)教务管理系统 D)汇编程序 (6)下面叙述中错误的是 A)软件测试的目的是发现错误并改正错误 B)对被调试的程序进行“错误定位”是程序调试的必要步骤 C)程序调试通常也称为Debug D)软件测试应严格执行测试计划,排除测试的随意性 (7)耦合性和内聚性是对模块独立性度量的两个标准。下列叙述中正确的是 A)提高耦合性降低内聚性有利于提高模块的独立性 B)降低耦合性提高内聚性有利于提高模块的独立性

C)耦合性是指一个模块内部各个元素间彼此结合的紧密程度D)内聚性是指模块间互相连接的紧密程度 (8)数据库应用系统中的核心问题是 A)数据库设计 B)数据库系统设计 C)数据库维护 D)数据库管理员培训 (9)有两个关系R,S如下: 由关系R通过运算得到关系S,则所使用的运算为 A)选择B)投影C)插入D)连接 (10)将E-R图转换为关系模式时,实体和联系都可以表示为A)属性B)键C)关系D)域 (11)以下选项中合法的标识符是 A)1-1B)1—1C)-11D)1-- (12)若函数中有定义语句:intk;,则 A)系统将自动给k赋初值0 B)这时k中值无定义 C)系统将自动给k赋初值-1 D)这时k中无任何值 (13)以下选项中,能用作数据常量的是 A)o115B)0118C))115L (14)设有定义:intx=2;,以下表达式中,值不为6的是A)x*=x+1 B)x++,2*x C)x*=(1+x)

C语言试题及答案

一、单项选择题 1. 软件危机具有下列表现( d )。 I. 对软件开发成本估计不准确II. 软件产品的质量往往靠不住 III. 软件常常不可维护IV. 软件成本逐年上升 A. I、II和III B. I、III和IV C. II、III和IV D. 以上都正确 2. 软件生命周期一般都被划分为若干个独立的阶段,其中占用精力和费用最多的阶段往往是( A )。 A. 运行和维护阶段 B. 设计阶段 C. 代码实现阶段 D. 测试阶段 3. 下列属于软件的特点的是( D )。 A. 软件是一种逻辑实体,具有抽象性 B. 软件在使用过程中没有磨损、老化的问题 C. 软件不同于一般程序,它的一个显着特点是规模庞大,复杂程度高 D. 以上都正确 4. 软件工程的出现是由于( D )。 A. 软件危机的出现 B. 计算机硬件技术的发展 C. 软件社会化的需要 D. 计算机软件技术的发展 5. 软件开发技术不包含( d )。 A. 软件开发方法学 B. 软件工程环境 C. 软件工具 D. 软件质量度度量 6. 软件工程的课程特点( D )。 I. 学科理论及其知识应用的多维性 II. 工程化 III. 浓厚的方法学色彩 IV. 实践性、指导性强 A. I、II和III B. I、III和IV C. II、III和IV D. 以上都正确 7. 下列属于应用软件的是( b )。 I. 计算机辅助教学软件II. 软件测试工具 III. 办公自动化软件IV. 工程与科学计算软件 A. I、II和III B. I、III和IV C. II、III和IV D. 以上都正确 8. 需求分析阶段最重要的技术文档是( b )。

计算机二级c语言历年真题及答案

计算机二级c语言历年真题及答案【篇一:国家计算机二级c语言历年真题及答案】 class=txt>c语言程序设计 (考试时间90分钟,满分100分) 一、选择题((1)—(10)、(21)—(40)每题2分,(11)—(20)每题1分,共70分) (1)下列数据结构中,属于非线性结构的是 a)循环队列 b) 带链队列 c) 二叉树 d)带链栈 (2)下列数据结果中,能够按照“先进后出”原则存取数据的是 a) 循环队列 b) 栈 c)队列 d)二叉树 (3)对于循环队列,下列叙述中正确的是 a)队头指针是固定不变的 b)队头指针一定大于队尾指针 c)队头指针一定小于队尾指针 d)队头指针可以大于队尾指针,也可以小于队尾指针 (4)算法的空间复杂度是指 a)算法在执行过程中所需要的计算机存储空间 b)算法所处理的数据量 c)算法程序中的语句或指令条数 d)算法在执行过程中所需要的临时工作单元数 (5)软件设计中划分模块的一个准则是 a) 低内聚低耦合 b) 高内聚低耦合 c) 低内聚高耦合 d) 高内聚高耦合 (6)下列选项中不属于结构化程序设计原则的是 a) 可封装 d) 自顶向下

c) 模块化 d) 逐步求精 (7)软件详细设计产生的图如下: 该图是 a) n-s图 b) pad图 c) 程序流程图 d) e-r图 (8)数据库管理系统是 a)操作系统的一部分 b) 在操作系统支持下的系统软件 c) 一种编译系统 d) 一种操作系统 (9)在e-r图中,用来表示实体联系的图形是 a) 椭圆图 b) 矩形 c) 菱形 d) 三角形 (10)有三个关系r,s和t如下: 其中关系t由关系r和s通过某种操作得到,该操作为 a) 选择 b) 投影 c) 交 d) 并 (11)以下叙述中正确的是 a)程序设计的任务就是编写程序代码并上机调试 b)程序设计的任务就是确定所用数据结构 c)程序设计的任务就是确定所用算法 d)以上三种说法都不完整 (12)以下选项中,能用作用户标识符的是 a)void b)8_8 c)_0_ d)unsigned (13)阅读以下程序

C语言程序设计模拟试题2(附答案)new

《C语言程序设计》模拟试卷二 一、填空题。(每空2分,共30分) 1.设有变量说明语句 int x=1,y=2; 则执行下述printf语句的输出结果是______ _____。 printf("%f\n",1.0+x/y); 2.执行下述程序 #include main() { int x,y; scanf("%2d%*2s%1d",&x,&y); printf("%d\n",x+y); } 若从键盘输入 12345671 则程序的输出结果是________。 3.以下程序的功能是:从键盘上输入若干名学生的成绩(百分制,可带小数,以输入负数或0为结束标志),统计并输出最高成绩和最低成绩。请填空。 #include main() { float x,amax,amin; scanf("%f",&x); amax=x; amin=x; while ( ) { if (x>amax) amax=x; else if (x

} 4.设n 是整型变量,且已具有某正整数值。根据下述数学式 1 1 14131312121+? ++?+?+n n 求s 的值并输出。 可编写如下之程序段实现之。请填空。 int k; double s,d; s=0.0; d=1.0; K=0; do { s=s+d; ___ _________; d=1.0/(k*(k+1)); } while (k<=n); printf("%f\n",s); 5.执行下述程序的输出结果是____ ____。 #inclued main() { int a[6],i; for (i=0;i<6;i++) { a[i]=9*(i-2+4*(i>3))%5; printf("%3d",a[i]); } printf("\n"); } 6.执行下述程序时的输出结果是_________ ________。 #include main() { int a[]={2,4,6,},*ptr=&a[0],x=8,y,z; for (y=0;y<3;y++) z=(*(ptr+y)

新版计算机二级C语言测试题及答案解析

计算机二级C语言测试题及答案解析计算机二级C语言测试题及答案解析 C语言的应用范围广泛,具备很强的数据处理能力,不仅仅是在软件开发上,而且各类科研都需要用到C语言,下面给大家整理了计算机二级C语言测试题及答案,欢迎阅读! 计算机二级C语言测试题及答案解析 1.(A )是构成C语言程序的基本单位。 A、函数 B、过程 C、子程序 D、子例程 2.C语言程序从 C 开始执行。 A、程序中第一条可执行语句 B、程序中第一个函数 C、程序中的main函数 D、包含文件中的第一个函数 3、以下说法中正确的是( C )。

A、C语言程序总是从第一个定义的函数开始执行 B、在C语言程序中,要调用的函数必须在main( )函数中定义 C、C语言程序总是从main( )函数开始执行 D、C语言程序中的main( )函数必须放在程序的开始部分 4.下列关于C语言的说法错误的是( B ) 。 A、 C程序的工作过程是编辑、编译、连接、运行 B、 C语言不区分大小写。 C、 C程序的三种基本结构是顺序、选择、循环 D、C程序从main函数开始执行 5.下列正确的标识符是(C )。 A、-a1 B、a[i] C、a2_i D、int t 5~8题为相同类型题 考点:标识符的命名规则 只能由字母、数字、下划线构成

数字不能作为标识符的开头 关键字不能作为标识符 选项A中的“-” ,选项B中“[”与“]”不满足(1);选项D中的int 为关键字,不满足(3) 6.下列C语言用户标识符中合法的是(B )。 A、3ax B、x C、case D、-e2 E)union 选项A中的标识符以数字开头不满足(2);选项C,E均为为关键字,不满足(3);选项D中的“-”不满足(1); 7.下列四组选项中,正确的C语言标识符是( C )。 A、 %x B、a+b C、a123 D、123 选项A中的“%” ,选项B中“+”不满足(1);选项D中的标识符以数字开头不满足(2)

c语言试题及答案 (2)

C语言部分 一、选择题(每小题2分,共10分) (下在各小题,分别有一个或多个正确答案,请将所有正确答案的编号,填写在该小题题干后的括号内。错选或漏选均不得分)。 1、若定义:int a[2][3]{0,2,4,6,8,10};以下描述正确的有( A,C,D, E ) A、*(a+1)为元素6的地址 这里a+1=a[1]的地址;*(a+1)的值是6,故A正确。 B、*(a[1]+1)的值为2 为8,故B不正确 C、**(a+1)+2的值为8 这里a+1是一个指针,指向的是a[1]. *(a+1)为a[1],a[1]指向的是a[1][0]. **(a+1)为6,加2得8,故C正确; D、a[0]与a相同 因二者都是指针,指针的地址都是指向数组中的第一个元素的地址,故D正确。 E、a[1][2]的值为10 它是指第二行的第三个元素,为10,正确 2、对函数的正确使用方法描述( A,C,D )。 A、用数组做函数参数时,必须在主调函数和被调函数中分别定义数组 B、实参数组元素和形参数组元素类型可以不一致 C、形参数组长度可以不指定 D、形参数组长度可以大于实参数组长度 E、数组名做参数属于值传递 3、对静态变量的正确描述( A,B,D,E ) A、静态局部变量在静态存储区内分配单元() B、静态外部变量可以赋初值,也可以不赋初值 C、静态外部变量的作用与外部变量相同 D、静态局部变量在函数调用结束时,仍保存其值,不会随着消失。 E、静态局部变量只赋一次初值 4、下列描述正确的是( A ,C)。 A、由main 函数及其参数argc和* argv[]可以实现命令行方式 B、使用fclose关闭文件时,先释放文件指针,再写缓冲区数据到文件中 //先写缓冲区数据到文件中,再释放文件指针 C、字符数组并不要求它的最后一个字符是‘\0’ //是的,以字符指针指向的字符串才要求,因为只有这样,才能知道字符串的长度,而在字符数组中,不用\0,一样可以知道到哪里是字符数组的结尾。 D、‘A’和“A”都是字符串常量 E、若char*S=“\ta\017bc”;则指针变量S指向的字符串所占的字节数是7 5、在缓冲文件系统中用于读写的函数有( A,B,D ) A、putchar () B、fread() C、rewind () D、purw() E、fseek() 二、程序阅读,并给出运行结果(共10分,每题5分)。 (1)main() { unsigned a,b,x int n; a=0x763 输出结果:

历年全国计算机二级C语言试题库完整

. . . . 参考 50道C 语言知识题 1.以下叙述中正确的是 A)用C 程序实现的算法必须要有输入和输出操作 B)用C 程序实现的算法可以没有输出但必须要有输入 C)用C 程序实现的算法可以没有输入但必须要有输出 D)用C 程序实现的算法可以既没有输入也没有输出 2.下列可用于C 语言用户标识符的一组是 A)void,define,WORDB)a3_3,_123,Car C)For,-abc,IFCaseD)2a,DO,sizeof 3.以下选项中可作为C 语言合法常量的是 A)-80B)-080C)-8e1.0D)-80.0e 4.若有语句:char*line[5];,以下叙述中正确的是 A)定义line 是一个数组,每个数组元素是一个基类型为char 为指针变量 B)定义line 是一个指针变量,该变量可以指向一个长度为5的字符型数组 C)定义line 是一个指针数组,语句中的*号称为间址运算符 D)定义line 是一个指向字符型函数的指针 5.以下定义语句中正确的是 A)inta=b=0;B)charA=65+1,b=′b′; 6.有以下程序段 charch;intk; ch=′a′; k=12; printf("%c,%d,",ch,ch,k);printf("k=%d\n",k); 已知字符a 的ASCII 码值为97,则执行上述程序段后输出结果是 A)因变量类型与格式描述符的类型不匹配输出无定值 B)输出项与格式描述符个数不符,输出为零值或不定值 C)a,97,12k=12 D)a,97,k=12 7.有以下程序 main() {inti,s=1; for(i=1;i<50;i++) if(!(i%5)&&!(i%3))s+=i; printf("%d\n",s);} 程序的输出结果是 A)409B)277C)1D)91 8.当变量c 的值不为2、4、6时,值也为"真"的表达式是 A)(c==2)||(c==4)||(c==6) B)(c>=2&&c<=6)||(c!=3)||(c!=5) C)(c>=2&&c<=6)&&!(c%2) D)(c>=2&&c<=6)&&(c%2!=1) 9.若变量已正确定义,有以下程序段

C语言习题及解答-2-1

C语言概述 一.选择题 1.下列选项中,合法的C语言关键字是 A) VAR B) cher C) integer D) default 2.请选出可用作C语言用户标识符的一组标识符____ A) Void define WORD B) a3_b3 _123 IF C) For -abc Case D) 2a Do sizeof 3.C语言提供的合法的数据类型关键字是____ A) Double B) short C) integer D) Char 4.在下列字符中,不可用作C语言标识符的是 A) water B) price C) a>b D) a12 5.一下叙述正确的是 A) C语言比其他高级高级 B) C语言可以不用编译就能被计算机识别执行 C) C语言以接近英语国家的自然语言和数学语言作为语言的表达形式 D) C语言出现的最晚、具有其他语言的一切优点 6.在一个C语言程序中 A) main函数必须出现在所有函数之前 B) main函数可以在任何地方出现 C) main函数必须出现在所有函数之后 D) main函数必须出现在固定位置 7.下列符号不属于C语言保留字的是 A) if B) then C) static D) for 8.下列说法正确的是 A) 主函数名main是由程序设计人员按照“标识符”的命名规则来选取的 B) 分号和回车符都可以作为语句的结束符号 C) 在程序清单的任何地方都可以插入一个或多个空格符号 D) 程序的执行总是从主函数main()开始的 参考答案 1.D 2.B 3.B 4.C 5.C 6.B 7.B 8.D 数据类型与表达式 一.选择题 1. 下列字符序列中,不可用作C语言标识符的是()。 A)abc123 B)no.1 C)_123_ D)_ok 2. 正确的C语言标识符是()。 A)_buy_2 B)2_buy C)?_buy D)buy?

全国计算机等级考试二级C语言真题2013年3月

全国计算机等级考试二级C语言真题2013年3月 (总分40, 做题时间90分钟) 一、选择题 1. 程序流程图中带有箭头的线段表示的是______。 A 图元关系 B 数据流 C 控制流 D 调用关系 答案:C [解析] 在数据流图中,用标有名字的箭头表示数据流。在程序流程图中,用标有名字的箭头表示控制流。所以选择C。 2. 结构化程序设计的基本原则不包括______。 A 多态性 B 自顶向下 C 模块化 D 逐步求精 答案:A [解析] 结构化程序设计的思想包括:自顶向下、逐步求精、模块化、限制使用goto语句,所以选择A。 3. 软件设计中模块划分应遵循的准则是______。 A 低内聚低耦合 B 高内聚低耦合

C 低内聚高耦合 D 高内聚高耦合 答案:B [解析] 软件设计中模块划分应遵循的准则是高内聚低偶合、模块大小规模适当、模块的依赖关系适当等。模块的划分应遵循一定的要求,以保证模块划分合理,并进一步保证以此为依据开发出的软件系统可靠性强,易于理解和维护。模块之间的耦合应尽可能的低,模块的内聚度应尽可能的高。 4. 在软件开发中,需求分析阶段产生的主要文档是______。 A 可行性分析报告 B 软件需求规格说明书 C 概要设计说明书 D 集成测试计划 答案:B [解析] A错误,可行性分析阶段产生可行性分析报告。C错误,概要设计说明书是总体设计阶段产生的文档。D错误,集成测试计划是在概要设计阶段编写的文档。B正确,需求规格说明书是后续工作如设计、编码等需要的重要参考文档。 5. 算法的有穷性是指______。 A 算法程序的运行时间是有限的 B 算法程序所处理的数据量是有限的 C 算法程序的长度是有限的 D 算法只能被有限的用户使用

C语言考试题库及答案,推荐文档(2)

C 语言理论上机考试选择题部分(共200 题) 1、下面程序的输出是___D ______ #include void 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 2、在下列选项中,不正确的赋值语句是__D _______ A) ++t; B) n1=(n2=(n3=0)); C) k=i=j; D) a=b+c=1; 3、下面合法的C 语言字符常量是_______ A ____ . A) '\t' B) "A" C) 65 D) A 4、表达式: 10!=9 的值是________ D ___ . A) true B) 非零值C) 0 D) 1 5、C 语言提供的合法的数据类型关键字是 B . A) Double B) short C) integer D) Char 6、字符(char) 型数据在微机内存中的存储形式是 __D__. A) 反码B) 补码C) EBCDIC 码D) ASCII 码 7、 C 语言程序的基本单位是 ____ C _____ . A) 程序行B) 语句C) 函数D) 字符 &设int a=12,则执行完语句a+=a-=a*a后,a的值是 ___ D ___ A) 552 B) 264 C) 144 D) -264 9、执行下面程序中的输出语句后,输出结果是B__. #include void main() {int a; printf("%d\n",(a=3*5,a*4,a+5)); } A) 65 B) 20 C) 15 D) 10 10 、下面程序的输出是____ B _____ . {int x=023; printf("%d\n",--x); } A) 17 B) 18 C) 23 D) 24 11 、下面程序的输出的是_____ C ___ . #include void main() {int x=10,y=3; printf("%d\n",y=x/y); } A) 0 B) 1 C) 3 D) 不确定的值 12、已知字母A 的ASCII 码为十进制的65,下面程序的输出是_____ A ____ . #include void main() {char ch1,ch2; ch1='A'+'5'-'3'; ch2='A'+'6'-'3'; printf("%d,%c\n",ch1,ch2); } A) 67,D B) B,C C) C,D D) 不确定的值 13、若要求在if 后一对圆括号中表示a 不等于0 的关 系,则能正确表示这一关系的表达式为_______ D__. A) a<>0 B) !a C) a=0 D) a 14、以下程序的输出结果是____ D _____. #include void main() { int x=10,y=10; printf("%d %d\n",x--,--y); } A) 10 10 B) 9 9 C) 9 10 D) 10 9 15、设有如下定义: int x=10,y=3,z; 则语句 printf("%d\n",z=(x%y,x/y)); 的输出结果是____ D ____ . A) 1 B) 0 C) 4 D) 3 16、为表示关系x > y > z,应使用C语言表达式 ___A___. 17、 C 语言中非空的基本数据类型包括_____ B ___ . A) 整型,实型,逻辑型B) 整型,实型,字符型 C) 整型,字符型,逻辑型 D) 整型,实型,逻辑型,字符型 #include void main() A) (x>=y)&&(y>=z) C) (x>=y>=z) B) (x>=y)AND(y>=z) D) (x>=y) & (y>=z)

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 语言字符型常量。

计算机二级C语言考试编程题题库

计算机c语言编程题库 1、求100之内自然数中最大的能被17整除的数。 void main() { int i; for(i=100;i>0;i--) if(i%17==0)break; printf("%d\n",i); } 2、已知a,b,c都是1位整数,求当三位整数abc、cba的和为1333时a、b、c的值。 void main() { int a,b,c; for(a=1;a<=9;a++) { for(b=0;b<=9;b++) { for(c=1;c<=9;c++) if(a*100+b*10+c+c*100+b*10+a==1333) printf("%d,%d,%d\n",a,b,c); } } } 3、计算并输出200-400之间不能被3整除的整数的和。 void main() { int i,sum=0; for(i=200;i<=400;i++) if(i%3!=0) sum=sum+i; printf("%d\n",sum); } 4、从键盘输入10个数,统计非负数的个数,并计算非负数的和。 void main() { int i,n=0,sum=0; int a[10]; printf(“请输入10个数:”);

for(i=0;i<10;i++) scanf(“%d”,&a[i]); for(i=0;i<10;i++) if(a[i]>=0) { sum=sum+a[i]; n++;} printf("非负个数是%d,sum=%d\n",n,sum); } 5、求100之内自然数中偶数之和。 void main() { int i,sum=0; for(i=0;i<=100;i++) if(i%2==0) sum=sum+i; printf("sum=%d\n",sum); } 6、输入5个数,求和并输出。要求编写求和的函数。 void main() { int b(int x[],int n); int sum=0; int a[5]; int i; printf("请输入5个数:"); for(i=0;i<5;i++) scanf("%d",&a[i]); sum=b(a,5); printf("sum=%d\n",sum); } int b(int x[],int n) { int i,sum=0; for(i=0;i<5;i++) sum=sum+x[i]; return sum; } 7、编程计算1*2*3+3*4*5+5*6*7+...+99*100*101的值。 void main() { int i,sum=0; for(i=1;i<=99;i=i+2) sum=sum+i*(i+1)*(i+2); printf("%d\n",sum); } 8、编写程序,将用户输入的字符串中所有的字符a用*代替,然后输出。void main()

C语言模拟试卷2(带答案)

单选题: C.100200 1、执行下面的程序段后 ,变量k 中的 值为 D. 输出格式符不够,输出不确定的值 s[0]=k;k=s [1]*10; 答案:A A. 不定值 7、请读程序片段(字符串 内没有空格字符 ): B.33 printf("%d\n",strlen("A TS\n012\1\\")); C.30 上面程序片段 的输出结果是 D.10 A.11 答案:A B.9 2、设有以下 定义: C.10 #define N 3 D.8 #define Y(n) ((N+1 )*n) 答案:B 则执行语 句:z=2*(N+Y(5+1)); 后,z 的值为_______.2*(3+(4*5+1) 8、设有以下程序段 intx=0,s=0; A. 出错 while(!x!=0)s +=++x; B.42 printf("%d",s ); C.48 则______ D.54 A. 运行程序段后输出 0 答案:C B. 运行程序段后输出 1 3、若已定义X 和Y 为double 型,则表达式:x=1,y=x+3/2 的值是____ C. 程序段中的控制表达式是非法的 A.1 D. 程序段执行无限次 B.2 答案:B C.2.0 9、阅读下列程序: D.2.5 main() 答案:c {intn[3],i ,j,k; 4、请选出以下语句 的输出结果 ____ for(i=0;i 〈3;i++) printf("%d\n",str len("\t\065\xff\n ")) n[i]=0 ; A.5 k=2; B.4 for(i=0;i

C语言测试题2

一、选择题 1.语句int a=10,*point=&a;其值不为地址。 A. point B. &a C. &point D. *point 2.若p为指针变量,y为变量,则y = *p++;的含义是 A.y=*p;p++ B.y=(*p)++ C.y=p;p++ D.p++;y=*p 3.语句char str[]=”visual C++”;char *p=str;则p的值为 A. ”visual C++” B.str的首地址 C. \n D.”v” 4.设有说明语句char *s[]={“student”,”Teacher”,”Father”,”Month”}, *ps=s[2];执行语句:printf(“%c,%s,%c”,*s[1],ps,*ps);则输出为 A.T,Father,F B.Teaher,F,Father C. Teacher,Father,Father D.语法错,无输出 5.下列说明或赋值语句,不正确的是 A. char *p;p=”Visual C++”; B. char p1[12]={…v?,?i?,?s?,?u?}; C. char p2[12];p2=”Visual C++” D. char p3[]=”Visual”; 6.现有int b[3][4],*p;p=(int *)b;若要指针p指向b[2][3],以下正确的是 A.p+=3*4+3 B.p+=2*4+3 C. p+=(3*4+3)*sizeof(int) D.p+=(2*4+3)*sizeof(int) 7.语句int i,*p1,**p2;以下语句语法不正确的是 A.p1=&i; B. p2=&i; C.p2=&p1; D.i=?\0x23?; 8.如下图结构体说明和变量的定义,p指向a,q指向变量b.下面不能 ..把结点b连接到结点a之后的语句是 C. p->next=&b; D.(*p).next=q; 9.下面正确的语句是 A. int a[3][4],(*p)[4]; p=a; B. int a[3][4],*p[4]; p=a; C. int a[3][4],*p; p=a; D. int a[3][4],**p;*p=a; 10.以“追加”方式打开文本文件a:\aa.dat,下列语句中哪一个是正确的是 A.fp=fopen("a:\\aa.dat","ab"); B. fp=fopen("a:\\aa.dat","a"); C. fp=fopen("a:\\aa.dat","r+"); D. fp=fopen("a:\\aa.dat","w"); 11.设有函数定义:int f1(void){return 100,150;}调用函数f1()时, A.函数返回值100 B. 函数返回值150 C. 函数返回二个值100和150 D. 语句return 100,150;语法错.

C语言2复习题

判断题 1.函数若无返回值,则它一定无形参。× 2.在 C 程序中, 函数既可以嵌套定义, 也可以嵌套调用。× 3.C程序总是从main( ) 函数的第一条语句开始执行的。√ 4.同一函数内可以有多个return语句。√ 5.main函数中的变量名不可以与其它函数相同。× 6.C程序可由多个函数组成,但必须有并且只有一个主函数main。√ 7.在C语言中的每个函数必须要有一个明确的return语句才能返回调用程序。× 8.主函数中定义的变量的作用域仅限于主函数内。√ 9.传值调用的形参只有在被调用时,才被创建(分配存储单元)。√ 10.C程序执行总是从第一个函数开始。× 11.一个C程序的执行总是从该程序的main函数开始,在main函数最后结束。× 12.被main函数调用的函数只能是库函数。× 13.函数说明指的是在程序中设定一个函数模块。× 14.在C程序中,若对函数类型未加说明,则函数的隐含类型为void。× 15.形参可以是常量、变量或表达式。× 16.函数调用可以作为一个函数的形参。× 17.C语言规定,实参应与其对应的形参类型一致。√ 18.定义函数时,形参的类型说明可以放在函数体内。× 19.一个函数可以带回一个整型值、字符值、实型值等,也可以带回指针型的数据。√ 20.全局变量可以被任何一个函数中的任何一个表达式使用。× 21.函数的隐含存储类型是extern。√ 22.定义在main函数后的任何函数都需在main中进行函数声明。× 23.a是一维数组名,数组元素a[1]还可以写作―*(a++)‖。× 24.C语言中数组名是指针常量。√ 25.构成数组的各个元素必须具有相同的类型。√ 26.数组元素的下标可以选用正整数或正实数。× 27.数组名可以作为参数进行传递。√ 28.若有定义―int a[4][5];‖,则在数组元素a[3][3]前有12个元素。× 29.若有定义int a[3][4];则共有12个元素,最后一个元素是a[3][4]。× 30.字符数组中字符串可以整体输入输出。√ 31.若有定义语句―char s1[ ]="abc",s2[ ]={'a','b','c'};‖,则数组s1和数组s2均有3个元 素。× 32.若a为一维数组名,则*(a+i)与a[i]等价。√ 33.函数原型为―void sort(float a[],int n)‖,调用该函数时,形参数组a被创建,实参数组各 元素的值被复制到a数组各元素中。× 34.C允许对数组的大小作动态定义,即可用变量定义数组的大小。× 35.数组定义int a[10]; 也可以写成int a(10); 。× 36.在对全部数组元素赋初值时,可以不指定数组长度。√ 37.定义s为5×6(5行6列)的数组可写成float a[5,6]; × 38.数组定义int a[10]; 表示数组名为a,此数组有10个元素,第10个元素为a[10]。× 39.static char c[]={'a' ,' ','b','o','o','k','\0'};与static char c[]={'a' ,' ' ,'b','o','o','k'}; 等价。× 40.设已有说明:static char c1[10],c2[10]; 下面程序片段是合法的。c1={―book‖}; c2=c1; × 41.调用函数时,实参为数组名,则向数组传递的是数组的首地址。√

计算机二级考试C语言试题及答案第一套

一、选择题(在下列各题的A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确的选项涂写在答题卡相应位置上,答在试卷上不得分。) (1)为了避免流程图在描述程序逻辑时的灵活性,提出了用方框图来代替传统的程序流程图,通常也把这种图称为 A)PAD图 B)N-S图 C)结构图 D)数据流图 (2)结构化程序设计主要强调的是 A)程序的规模 B)程序的效率 C)程序设计语言的先进性 D)程序易读性 (3)为了使模块尽可能独立,要求 A)模块的内聚程度要尽量高,且各模块间的耦合程度要尽量强 B)模块的内聚程度要尽量高,且各模块间的耦合程度要尽量弱 C)模块的内聚程度要尽量低,且各模块间的耦合程度要尽量弱 D)模块的内聚程度要尽量低,且各模块间的耦合程度要尽量强 (4)需求分析阶段的任务是确定 A)软件开发方法 B)软件开发工具 C)软件开发费用 D)软件系统功能 (5)算法的有穷性是指

A)算法程序的运行时间是有限的 B)算法程序所处理的数据量是有限的 C)算法程序的长度是有限的 D)算法只能被有限的用户使用 (6)对长度为n的线性表排序,在最坏情况下,比较次数不是n(n-1)/2的排序方法是 A)快速排序 B)冒泡排序 C)直接插入排序 D)堆排序 (7)如果进栈序列为e1,e2,e3,e4,则可能的出栈序列是 A)e3,e1,e4,e2 B)e2,e4,e3,e1 C)e3,e4,e1,e2 D) 任意顺序 (8)将E-R图转换到关系模式时,实体与联系都可以表示成 A)属性 B)关系 C)键 D)域 (9)有三个关系R、S和T如下: R B C D a 0 k1 b 1 n1 S B C D f 3 h2 a 0 k1

(完整版)历年全国计算机二级C语言题库

50道C语言知识题 1.以下叙述中正确的是 A)用C程序实现的算法必须要有输入和输出操作 B)用C程序实现的算法可以没有输出但必须要有输入 C)用C程序实现的算法可以没有输入但必须要有输出 D)用C程序实现的算法可以既没有输入也没有输出 2.下列可用于C语言用户标识符的一组是 A)void,define,WORDB)a3_3,_123,Car C)For,-abc,IFCaseD)2a,DO,sizeof 3.以下选项中可作为C语言合法常量的是 A)-80B)-080C)-8e1.0D)-80.0e 4.若有语句:char*line[5];,以下叙述中正确的是 A)定义line是一个数组,每个数组元素是一个基类型为char为指针变量 B)定义line是一个指针变量,该变量可以指向一个长度为5的字符型数组 C)定义line是一个指针数组,语句中的*号称为间址运算符 D)定义line是一个指向字符型函数的指针 5.以下定义语句中正确的是 A)inta=b=0;B)charA=65+1,b=′b′; C)floata=1,*b=&a,*c=&b;D)doublea=00;b=1.1; 6.有以下程序段 charch;intk; ch=′a′; k=12; printf("%c,%d,",ch,ch,k);printf("k=%d\n",k); 已知字符a的ASCII码值为97,则执行上述程序段后输出结果是 A)因变量类型与格式描述符的类型不匹配输出无定值 B)输出项与格式描述符个数不符,输出为零值或不定值 C)a,97,12k=12 D)a,97,k=12 7.有以下程序 main() {inti,s=1; for(i=1;i<50;i++) if(!(i%5)&&!(i%3))s+=i; printf("%d\n",s);} 程序的输出结果是 A)409B)277C)1D)91 8.当变量c的值不为2、4、6时,值也为"真"的表达式是 A)(c==2)||(c==4)||(c==6) B)(c>=2&&c<=6)||(c!=3)||(c!=5) C)(c>=2&&c<=6)&&!(c%2) D)(c>=2&&c<=6)&&(c%2!=1) 9.若变量已正确定义,有以下程序段 inta=3,b=5,c=7;

相关主题
文本预览