四川省计算机二级(C语言)30,29次机试试题及其参考答案

四川省计算机二级(C语言)30,29次机试试题及其参考答案
四川省计算机二级(C语言)30,29次机试试题及其参考答案

30-1套参考答案:

一、程序调试题(文件名为test1-1.c)( 40 分)

# include

# define N 4

void fun(int a[][N])

{

int i,t;

for(i=0;i

{ t=a[i][i];

a[i][i]=a[i][N-i]; /* 改为:n-i-1 */

a[i][N-i]=t; /* 改为:n-i-1 */

}

}

void main()

{

int a[N][N],i,j;

FILE *fp;

fp=fopen("test1-1.dat","r");

if(fp==NULL)

{ printf("test1-1.dat can not open.\n");

exit(0);

}

for(i=0;i

for(j=0;j

fscanf("%d",&a[i][j]); /* 改为:fp,”%d”,&a[i][j] */

fclose(fp);

fun( ); /* 改为:fun(a) */

printf("output:\n");

for(i=0;i

{ for(j=0;j

printf("%5d",&a[i][j]); /* 改为:a[i][j] */

printf("\n");

}

}

评分标准:每改对一处得8分

二、编程题(程序文件取名为test1-2.c)(60分)

评分标准:

1.fun函数编写40分。其中:

2. main函数20分。其中:

1)函数定义、形参书写正确(5分) 1)正确定义各种变量,能正确按行进行输出(10分) 2)数组前两项赋值正确(5分) 2)能正确调用fun函数(10分)

3)for循环正确(10分)

4)奇数下标项计算正确(10分)

5)偶数下标项计算正确(10分)

参考程序:

# include

# define N 20

void fun(int *a)

{

int i;

a[0]=1;

a[1]=2;

for(i=2;i

if(i%2==0)

a[i]=(int)abs(a[i-1]-a[i-2]);

else

a[i]=a[i-1]+a[i-2];

}

void main()

{

int a[N];

fun(a);

printf("Output:\n");

for(i=0;i

{ printf("%4d",a[i]);

if((i+1)%4==0) printf("\n");

}

}

30-2套参考答案:

一、程序调试题(文件名为test2-1.c)( 40 分)

# include "stdio.h"

void main()

{

int i;

FILE *fp; /*增行:void itoa(int); */

fp=fopen("test2-1.dat","r");

if(fp==NULL)

{ printf("test2-1.dat can not open.\n");

exit(0);

}

fscanf(fp,"%d",&i);

itoa(i);

fclose(); /* 改为:fclose(fp) */

}

void itoa(int k)

{ int n=0;

char ch1,ch2,ch3,ch4,ch5;

ch5=k%10000; /* 改为:ch5=k/10000 */

if(ch5>0) n++;

ch5+='0';

if(ch4>0) n++;

ch4+='0';

ch3=(k%1000)/100;

if(ch3>0) n++;

ch3+='0';

ch2=(k%100)/10;

if(ch2>0) n++;

ch2+='0';

ch1=k%10/10; /* 改为:k%10 */

n++;

ch1+='0';

switch ( k ) /* 改为:n */

{ case 5: printf("%c",ch5);

case 4: printf("%c",ch4);

case 3: printf("%c",ch3);

case 2: printf("%c",ch2);

case 1: printf("%c",ch1);

}

}

评分标准:每改对一处得8分

二、编程题(程序文件取名为test2-2.c)(60分)

评分标准:

1.正确书写程序格式,正确定义各种变量(5分)

2.循环参数正确(20分)

3.判断字符是否相同的条件正确(5分)

4.正确删除字符(20分)

5.字符串输入输出正确(10分)

参考程序:

# include

# define N 80

void main()

{

char str1[N],str2[N];

int i,j,k;

int len1,len2;

printf("Please input str1:");

gets(str1);

len1=strlen(str1);

printf("Please input str2:");

gets(str2);

len2=strlen(str2);

i=0;

while(str2[i]!='\0')

{

for(j=0;j

{

for(k=i;k

str2[k]=str2[k+1];

len2--;

break;

}

if(j==len1)

i++;

}

printf("After processing:\n");

printf("str1: ");

puts(str1);

printf("str2: ");

puts(str2);

}

30-3套参考答案:

一、程序调试题(文件名为test3-1.c)( 40 分)

# include "stdio.h"

void rev(void); /* 增加:; */

FILE *f1,*f2;

void main(int argc,char *argv[])

{

char ch;

if(argc>3) /* 改为:< */

{ printf("paramelers missing!\n");

exit(0);

}

if((f1=fopen(*argv[1],"w"))==NULL) /* 改为:argv[1] */

{ printf("Can not open file1!\n");

exit(0);

}

if((fp=fopen(argv[2],"r"))==NULL)

{ printf("Can not open file2!\n");

exit(0);

}

while(!feof(f2))

{ void rev();/* 改为:rev( ) */

fputc('\n',f1);

}

fclose(f1);

fclose(f2);

}

void rev(void)

{

if((!feof(f2)) || ((c=fgetc(f2))!='\n')) /* 改为:&& */

{ rev();

fputc(c,f1);

}

}

评分标准:每改对一处得8分

二、编程题(程序文件取名为test3-2.c)(60分)

评分标准:

1.num函数编写40分。其中:

1) 函数定义、形参书写正确10分

2) 取各位数正确10分

3) 各位数判断正确10分

4) return正确10分

2.main函数20分。其中:

1) 正确定义各种变量,输入输出正确10分

2) 能正确调用num函数10分

参考程序:

# include

# define MAX 5

void main()

{

int i,a[MAX],b[MAX],cnt=0;

int num(int a[],int b[]);

for(i=0;i

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

cnt=num(a,b);

printf("cnt=%d\n",cnt);

for(i=0;i

printf("%d:%d\n",i+1,b[i]);

}

int num(int a[],int b[])

{

int bb[4],cnt=0,i,j,k,flag;

for(i=0;i

{

bb[0]=a[i]/1000;

bb[1]=a[i]%1000/100;

bb[2]=a[i]%100/10;

bb[3]=a[i]%10;

for(j=0;j<4;j++)

{ if(bb[j]%2==0)

flag=1;

else

{ flag=0;

break;

}

if(flag==1)

b[cnt++]=a[i];

}

return cnt;

}

30-4套参考答案:

一、程序调试题(文件名为test4-1.c)( 40 分)

# include

void main()

{

FILE *fp;

int num=0,digit=0;

char ch;

if((fp=fopen("test4-1.dat","w"))==NULL) /* 改为:r */

{ printf("Cannot open the file!\n");

exit(0);

}

while(feof(fp)) /* 改为:!feof(fp) */

{

fgetc(fp); /* 改为:ch=fgetc(fp) */

if(ch<='z'&&ch>='a'|| ch<='Z'&&ch>='A')

num++;

if(ch<=9&&ch>=0) /* 改为:'9' '0' */

digit++;

}

fclose(); /* 改为:fclose(fp) */

printf("The numbersof letters: %d\nThe numbers of numbers:%d\n",num,digit);

}

评分标准:每改对一处得8分

二、编程题(程序文件取名为test4-2.c)(60分)

评分标准:

1.sort函数编写40分。其中:

1) 函数定义、形参书写正确10分

2) strcmp使用正确10分

3) 排序正确20分

2.main函数20分。其中:

1) 正确定义各种变量,输入输出正确10分

2) 能正确调用sort函数10分

参考程序:

# include

# include

# define N 5

void main()

void sort(char *name[]);

char *name[]={"China","Holland","German","America","Canada"}; int i;

sort(name);

for(i=0;i

printf("%s\n",name[i]);

}

void sort(char *name[])

{

char *temp;

int i,j,k;

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

{ k=i;

for(j=i+1;j

if(strcmp(name[k],name[j])>0) k=j;

if(k!=i)

{ temp=name[i];

name[i]=name[k];

name[k]=temp;

}

}

}

29-1套参考答案:

一、程序调试题(文件名为test1-1.c)( 40 分)

# include

# include

# define M 5

# define N 20

void fun(char (*ss)[N])

{ int i,j,k=0,n,m,len;

for(i=0;i

{ len=strlen(ss[i]);

if(i=0) n=len; /* 改为:i==0 */

if(lenn */

{ n=len;

k=i;

}

}

for(i=0;i

if(i!=k)

{ m=n;len=strlen(ss); /* 改为:ss[i] */

for(j=len;j>=0;j--)

ss[i][m--]=ss[i][j];

for(j=0;j

ss[i][j]='*';

}

}

void main()

{ char ss[M][N];

int i;

FILE *fp;

fp=fopen("test1-1.in","r");

if(fp==NULL)

{ printf("File cannot open!\n");

exit(0);

}

for(i=0;i

fscanf("%s",ss[i]); /* 改为:fp,"%s",ss[i] */

printf("\nThe original strings are:\n");

for(i=0;i

printf("%s\n",ss[i]);

printf("\n");

fun(ss);

for(i=0;i

printf("%s\n",ss[i]);

fclose(fp);

评分标准:每改对一处得8分

二、编程题(程序文件取名为test1-2.c)(60分)

评分标准:

1. main函数30分

2. fun函数30分

1)字符串和字符输入正确10分1)删除字符方法正确10分2)函数调用参数传递正确10分2)指针使用正确10分3)输出结果正确10分3)s[i]=0 10分参考程序:

# include

# define N 100

int fun(char s[],int c)

{

char *p=s;

int i;

while(*p)

{ if(*p!=c) s[i++]=*p;

p++;

}

s[i]=0;

}

main()

{

char str[N],ch;

printf("\nEnter string:");

gets(str);

printf("Entera char to be deleted:");

scanf("%c",&ch);

fun(str,ch);

printf("Result=%s\n",str);

}

29-2套参考答案:

一、程序调试题(文件名为test2-1.c)( 40 分)

# include

# include

float fun(float num)

{ int s;

float n,t,pi;

t=1;pi=0;n=1;s=1;

while ( t>=num ) /* 改为:fabs(t)>=num */

{ pi=pi+t; n=n+2; s=-s;

t=s%n; /* 改为:s/n */

}

pi=pi*4;

return; /* 改为:return pi */

main()

{

float n1,n2;

FILE *fp;

fp=fopen("test2-1.out","r"); /* 改为:w */

if(fp==NULL)

{ printf("\nFile cannot open!\n");

exit(0);

}

printf("Enter a float number:");

scanf("%f",&n1);

n2=fun(); /* 改为:n2=fun(n1) */

printf("%6.4f\n",n2);

fprintf(fp,"Result=%6.4f\n",n2);

fclose(fp);

}

评分标准:每改对一处得8分

二、编程题(程序文件取名为test2-2.c)(60分)

评分标准:

1. fun函数编写40分

2. main函数20分

1)函数定义、形参书写正确10分1)能正确字义数组,并能对字符串进2)能正确将字符数组a复制到字符数组c 10分行正确的输入和输出10分3)能正确将字符数组b复制到字符数组c 10分2)能正确调用fun函数10分4)c[k]=’\0’10分

参考程序:

# include

# include

void fun(char *a,char *b,char *c)

{

int i,j,k;

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

c[i]=a[i];

for(k=i,j=strlen(b)-1;j>=0;k++,j--)

c[k]=b[j];

c[k]='\0';

}

void main()

{

char a[50],b[50],c[100];

printf("Input string a:");

gets(a);

printf("Input string b:");

gets(b);

fun(a,b,c);

printf("string c:%s\n",c);

29-3套参考答案:

一、程序调试题(文件名为test3-1.c)( 40 分)

# include

void fun(int a[],int n)

{

int i,j=0,b[20];

for(i=0;i

if(a[i]>=0)

b[j]=a[i]; /* 改为:j++ */ for(i=0;i

if(a[i]>0) /* 改为:< */

b[j++]=a[i];

for(i=0;i

a[i]=b[i];

}

void main()

{

int a[10],i;

char filename[20];

FILE *fp;

printf("Input filename:");

scanf("%c",filename); /* 改为:%s */

if((fp=fopen(filename,"r"))==NULL){

printf("Cannot open the file.\n");

exit(0);

}

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

fscanf(fp,"%d",a[i]); /* 改为:&a[i] */

fun(a,10);

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

printf("%4d",a+i); /* 改为:a[i] */

fclose(fp);

}

评分标准:每改对一处得8分

二、编程题(程序文件取名为test3-2.c)(60分)

评分标准:

1.fun函数编写40分:

1) 函数定义、形参书写正确10分

2) 能正确处理n大于s的长度的情况10分

3) 能正确处理n小于s的长度的情况10分

4) t[j]=’\0’10分

2.main函数20分:

1) 能正确定义数组,并能正确进行输入输出10分

2) 能正确调用函数10分

# include

# include

void fun(char *s,char *t,int n)

{

int i,j,k;

k=strlen(s);

if(n>=k)

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

t[i]=s[i];

t[i]='\0';

}

else

{ for(i=k-n,j=0;s[i]!='\0';i++,j++)

t[j]=s[i];

t[j]='\0';

}

}

void main()

{

char s[80],t[80];

int i,n;

printf("Input string:");

gets(s);

printf("Input n:");

scanf("%d",&n);

fun(s,t,n);

printf("Result:");

puts(t);

}

29-4套参考答案:

一、程序调试题(文件名为test4-1.c)( 40 分)

# include "stdio.h"

# define N =3 /* 改为:3 */

int fun(int a[][N],n) /* 改为:int n */ {

int i,j;

for(i=0;i

for(j=0;j

if(i>=j)

a[i][j]=*n; /* 改为:*= */ }

main()

{

int a[N][N],n,i,j;

FILE *fp;

{ for(j=0;j

{ a[i][j]=rand()%10;

printf("%4d",a[j][i]); /* 改为:a[i][j] */

}

printf("\n");

}

do

n=rand()%10;

while(n<=3) /* 改为:(n<=3); */

printf("n=%4d\n",n);

fun(a,n);

fp=fopen("test4-1.out","w");

if(fp==NULL)

{ printf("\nFile cannot open!\n);

exit(0);

}

for(i=0;i

{ for(j=0;j

{ printf("%4d",a[i][j]);

fprintf(fp,"%4d",a[[i][j]);

}

printf("\n");

}

fclose(fp);

}

评分标准:每改对一处得8分

二、编程题(程序文件取名为test4-2.c)(60分)

评分标准:

1.fun函数编写20分:

1) 函数定义、形参书写正确10分

2) for循环书写正确10分

2.main函数40分:

1) 字符串输入和输出正确5分

2) 字符串的长度计算准确10分

3) 字符串前导*号个数计算准确10分

4) 字符串尾部*号个数计算准确10分

5) 函数调用参数传递正确5分

参考程序:

# include

void fun(char *a,int n,int h ,int e)

{ int i,j=0;

for(i=h;i

a[j++]=a[i];

a[j]='\0';

void main()

{ char s[81],*t,*f;

int m=0,tn=0,fn=0;

printf("Enter a string:\n");

gets(s);

t=f=s;

while(*t) {t++; m++; }

t--;

while(*t=='*') { t--; tn++; }

while(*f=='*') { f++; fn++; }

fun(s,m,fn,tn);

printf(The string after deleted:\n);

puts(s);

}

29-5套参考答案:

一、程序调试题(文件名为test5-1.c)( 40 分)

# include

void fun(double a,b,*x,*y) /* 改为:double b, double *x, double *y */

{ x=a*b; y=a/b; /* 改为:*x=a*b; *y=a/b; */

}

io()

{ int i;

double a,b,c,d;

file *rf,*wf; /* 改为:FILE */

rf=fopen("test5-1.in","r");

wf=fopen("test5-1.out","w");

fscanf(rf,"%lf%lf",&a,&b);

fun(a,b,c,d); /* 改为:fun( a , b , &c , &d ) */

fprintf("c=%lf\nn=%lf\n",c,d); /* 改为:fprintf ( wf , "c=%lf\nn=%lf\n" , c , d ) ; */ printf("c=%lf\nn=%lf\n",c,d);

fclose(rf);

fclose(wf);

}

void main()

{

double a,b,c,d;

clrscr();

io();

}

评分标准:每改对一处得8分

二、编程题(程序文件取名为test5-2.c)(60分)

评分标准:

1.convert函数25分

1) 函数定义(参数)正确10分

2) 转置正确15分

1) 二维数组定义正确5分

2) 数据输入正确10分

3) 函数调用参数传递正确10分

4) 结果输出正确10分

参考程序:

# include

void convert(int a[][4],int b[][3])

{

int i,j;

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

for(j=0;j<4;j++)

b[j][i]=a[i][j];

}

void main()

{

int a[3][4],b[4][3];

int i,j;

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

for(j=0;j<4;j++)

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

convert(a,b);

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

{ for(j=0;j<3;j++)

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

printf("\n");

}

}

全国计算机等级考试二级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.程序Cmody021.c输出如下所示图形: * *** ***** ******* ********* #include void main() { int i,j;for(i=1;i<=5;i++) { for(j=1;j<=5-i;j++)printf(" "); for(j=1;j<=2*i-1;j++) printf("*"); printf("\n"); } } 2.程序Cmody032.c的功能是:输出201-300之间的所有素数,统计总个数。#include #include void main() { int num; printf("\n"); num=fun(); printf("\nThe total of prime is %d",num); getch(); } int fun() { int m,i,k,n=0; for(m=201;m<=300;m++) { k=sqrt(m+1); for(i=2;i<=k;i++) /**/if(m/i==0)/**/ break; /**/if(i==k)/**/ { printf("%-4d",m); n++;

if(n%10==0)printf("\n"); } } return n; } 3. 程序Cmody041.c,其功能是统计输入字符串中小写英文字母的个数。如输入:abcdEFGHIJK123 输出:4 #include #include main() { char str1[128]; /**/int i,len,sum=0;/**/ gets(str1); len=strlen(str1); for(i=0;i='a'&&str1[i]<='z')/**/ sum++; } printf("%d\n",sum); getch(); } 4.程序Cmody051.c,其功能是统计输入字符串中大写英文字母的个数。如输入:abcDEFGH123 输出:5 #include #include main() { /**/char str1[128]/**/ int i,len,sum=0; printf("Please input a string:\n"); scanf("%s",str1); len=strlen(str1); for(i=0;i='A'&&str1[i]<='Z') /**/sum++;/**/

历年全国计算机二级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语言基础选择试题(一)

C语言基础选择试题(一) 2123 答案 :C 所谓“裸机”是指( )。 a:没有安装机箱 b:没有安装应用软件 c:没有安装任何软件的计算机 c:只安装操作系统的计算机 2145 答案 :D 可用于大小写字母转换的键是( )。 a:Esc b:CapsLock c:Shift c:CapsLock或Shift 1068 答案 :D 计算机病毒的主要特征是()。 a:只会感染不会致病 b:造成计算机器件永久失效 c:格式化磁盘 c:传染性、隐蔽性、破坏性和潜伏性 1054 答案 :D 个人计算机属于( ) 。 a:小型计算机 b:中型计算机 c:巨型计算机 d:微型计算机 1080 答案 :B 用汉语拼音输入“长沙”两个汉字,输入“changsha”8个字符,那么,“长沙”两字的内码所占用的字节数是()。 a:2 b:4 c:8 c:16 1053 答案 :A 操作系统的功能是( )。 a:提高系统资源的利用率,方便用户使用计算机 b:负责给程序和数据分配内存空间 c:负责各种文件的管理 c:管理磁盘文件和I/O设备管理 1055 答案 :C 组建以太网时,通常都是用双绞线把若干台计算机连到一个中心的设备上,这个设备叫做()。 a:网络适配器 b:服务器 c:集线器 c:总线 1057 答案 :D

应用软件是指( )。 a:所有能够使用的软件 b:能被各应用单位共同使用的某种软件 c:所有微机上都应用的基本软件 c:专门为某一应用目的而编制的软件 1078 答案 :B 为网络提供共享资源并对这些资源进行管理的计算机称之为()。 a:网卡 b:服务器 c:工作站 c:网桥 1082 答案 :B 在Windows98中运行应用程序时,下列哪个操作调不出帮助信息()。 a:按F1键 b:按F10键 c:单击“帮助”菜单 c:单击窗口右上角“”按钮 1068 答案 :A ISO/ OSI参考模型七层协议中第一层是()。 a:物理层 b:数据链路层 c:网络层 c:传输层 2083 答案 :A 解释程序的功能是()。 a:解释执行高级语言程序 b:解释执行汇编语言程序 c:将汇编语言程序翻译成目标程序 c:将高级语言程序翻译成目标程序 1071 答案 :B 在计算机网络术语中,WAN的中文意义是()。 a:以太网 b:广域网 c:互联网 c:局域网 1055 答案 :C 主存储器又称为()。 a:RAM b:ROM c:内存 c:外存 1056 答案 :D 把同种或异种类型的网络相互连接起来称为()。 a:广域网 b:万维网(WWW c:城域网 c:互联网

c语言机试经典编程题重点!!!

本学期《程序设计基础》课程实行上机考核,现将考核有关事项通知如下:(1)考核时间:本学期最后一次上机时间为机试。 (2)考核内容:主要是算法设计与实现。考题来自本学期布置的作业、例题及一些补充的题目。 (3)考试形式:机试前进入机房时,每人随机抽取一道题(同一个组的同学保证不抽到同一题),然后上机编程,调试通过后报告监考人员审核,审核通过后将源程序拷贝到监考人员U盘上,然后可以离开机房。源程序文件明必须是“学号姓名.cpp”,如“王梓丞.cpp”。 (4)考试要求:机试时考试规则同课堂考试一致,不允许带书、纸张等。不能携带任何可用计算机处理的软件或数据(不允许任何私人携带的U盘、磁盘或计算器) ,不能携带任何类型的通讯工具,包括无线电接收器、移动电话。 (5)考试成绩:本次机试成绩将在《程序设计基础》课程成绩中占25%的比重。 (6)其它有关事项由主考教师和监考人员负责处理。 附:考试题集 1.学校曾经组织一次“程序设计大奖赛”,规定本学期“程序设计”课程的成绩可以因为 在大奖赛上获奖而加5分,总分不超过100分。编程序,输入某同学的考试成绩,回答是否在竞赛中获奖,计算并输出该某同学的程序设计课成绩。 #include void main(){ int m,n; printf("请输入考试成绩:\n"); scanf("%d",&m);

printf("请选择获奖情况:1 获奖;2 未获奖\n"); scanf("%d",&n); switch (n){ case 1: m=m+5;break; case 2: m; } if(m>100) m=100; printf("你的最终成绩为:%d\n",m); } 2.编写一个程序,用户输入年份及月份两个数据,程序输出该月份的天数。(提示:对2 月要考虑是否闰年,闰年年份要么能被4整除且不能被100整除,要么能被400整除,除此之外都不是闰年)。 #include int year,a; void main(){ printf("请输入年份月份:"); scanf("%d%d",&year,&a); if(a==1||a==3||a==5||a==7||a==8||a==10||a==12) printf("这个月有31天\n"); else{ if(a==2){ if((year%4==0)&&(year%100!=0)||(year%400==0)) printf("这个月有29天\n"); else printf("这个月有28天\n");

_《C语言》机试题(成-部分答案)

上机试题(一) 1 已知A,B为正整数, A2 试求F(1)+F(3)+F(5)+……+F(49)值。 提示:最好使用递推法求解,因为使用递归调用很可能超出某些语言的递归深度。答案:12586269025 ………………………………………………………………………………………………… 上机试题(四) 1设有6个十进制数字a,b,c,d, e,f ,求满足abcdf×e=fdcba条件的五位数abcdf(a≠0,e≠0,e≠1)的个数。 答案:16 2一个数如果刚好与它所有的因子之和相等,则称该数为一个"完数",如:6=1+2+3,则6就是一个完数。求出200到500之间所有的完数之和。 答案:496 ………………………………………………………………………………………………… 上机试题(五) 1 一个素数(设为p)依次从最高位去掉一位,二位,三位,……,若得到的各数仍都是素数(注:除1和它本身外,不能被其它整数整除的正整数称为素数,1不是素数,2是素数),且数p的各位数字均不为零,则称该数p为逆向超级素数。例如,617,17,7都是素数,因此617是逆向超级素数,尽管503,03,3都是素数,但它不是逆向超级素数,因为它包含有零。试求[100,999]之内的所有逆向超级素数的个数。 答案:39 2 编写程序,求在5000以内能被17或者23整除的正整数的个数。 答案:499 ………………………………………………………………………………………………… 上机试题(六) 1 设有十进制数字a,b,c,d和e,它们满足下列式子:abcd*e=bcde (a不等于0, e不等于0或1),求满足上述条件的所有四位数abcd的和。

计算机二级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语言机试(C语言基础知识)模拟试卷8

国家二级C语言机试(C语言基础知识)模拟试卷8 (总分:60.00,做题时间:90分钟) 一、选择题(总题数:30,分数:60.00) 1.我们所写的每条C语句,经过编译最终都将转换成二进制的机器指令。关于转换以下说法错误的是 (分数:2.00) A.一条C语句可能会被转换成多条机器指令 B.一条C语句对应转换成一条机器指令√ C.一条C语句可能会被转换成零条机器指令 D.某种类型和格式的C语句被转换成机器指令的条数是固定的 解析:解析:由C语言编写的程序,通过编译、链接转换成可以让机器识别的01二进制指令。这些二进制指令命令机器计算,这些就是机器指令,而C语言的语句条数和机器指令的条数不是一对一的关系。 2.以下选项中不属于C语言程序运算符的是 (分数:2.00) A.sizeof B.() C.<> √ D.&& 解析:解析:sizeof为测试内存的运算符,()为算术运算符,&&为逻辑运算符。而<>不是C语言的运算符,C语言中!=表示不等于。 3.若变量已正确定义并赋值,以下不能构成C语句的选项是 (分数:2.00) A.A=a+b: B.B++; C.a=a+b √ D.A?a:b; 解析:解析:C语言语句的表示为分号,不加分号的表达式不能看成C语句。 4.以下叙述中正确的是 (分数:2.00) A.程序必须包含所有三种基本结构才能成为一种算法 B.如果算法非常复杂,则需要使用三种基本结构之外的语句结构,才能准确表达 C.只有简单算法才能在有限的操作步骤之后结束 D.我们所写的每条C语句,经过编译最终都将转换成二进制的机器指令√ 解析:解析:C语句构成了函数,函数构成的程序,经过编译转换成二进制代码后可以运行,算法是指为解决某个特定问题而采取的确定且有限的步骤,可以利用代码来捕述算法,而算法+数据结构才是程序,结构化的程序由顺序结构、循环结构和选择结构三种基本结构组成。由这三种基本结构组成的算法可以解决任何复杂的问题,反之则不一定,所有算法必须在有限步骤后结束。 5.下列选项中,不能用作标识符的是 (分数:2.00) A._1234 B._1_2 C.int_2_ D.2_int_ √ 解析:解析:C语言中标以符必须以字母或者下划线开始,选项D)中是以数字开始的不能作为标识符。6.以下选项中作为C语言合法常量的是 (分数:2.00) A.-80.√ B.-080

计算机二级c语言题库

一、选择题 (1) 下面叙述正确的是(C) A. 算法的执行效率与数据的存储结构无关 B. 算法的空间复杂度是指算法程序中指令(或语句)的条数 C. 算法的有穷性是指算法必须能在执行有限个步骤之后终止 D. 以上三种描述都不对 (2) 以下数据结构中不属于线性数据结构的是(C) A. 队列 B. 线性表 C. 二叉树 D. 栈 (3) 在一棵二叉树上第5层的结点数最多是(B) 注:由公式2k-1得 A. 8 B. 16 C. 32 D. 15 (4) 下面描述中,符合结构化程序设计风格的是(A) A. 使用顺序、选择和重复(循环)三种基本控制结构表示程序的控制逻辑 B. 模块只有一个入口,可以有多个出口 C. 注重提高程序的执行效率 D. 不使用goto语句 (5) 下面概念中,不属于面向对象方法的是(D) 注:P55-58 A. 对象 B. 继承 C. 类 D. 过程调用 (6) 在结构化方法中,用数据流程图(DFD)作为描述工具的软件开发阶段是(B) A. 可行性分析 B. 需求分析 C. 详细设计 D. 程序编码 (7) 在软件开发中,下面任务不属于设计阶段的是(D) A. 数据结构设计 B. 给出系统模块结构 C. 定义模块算法 D. 定义需求并建立系统模型 (8) 数据库系统的核心是(B) A. 数据模型 B. 数据库管理系统 C. 软件工具 D. 数据库 (9) 下列叙述中正确的是(C) A.数据库是一个独立的系统,不需要操作系统的支持 B.数据库设计是指设计数据库管理系统 C.数据库技术的根本目标是要解决数据共享的问题 D.数据库系统中,数据的物理结构必须与逻辑结构一致 (10) 下列模式中,能够给出数据库物理存储结构与物理存取方法的是(A) 注:P108 A. 内模式 B. 外模式 C. 概念模式 D. 逻辑模式 (11) 算法的时间复杂度是指(C) A. 执行算法程序所需要的时间 B. 算法程序的长度 C. 算法执行过程中所需要的基本运算次数 D. 算法程序中的指令条数 (12) 算法的空间复杂度是指(D) A. 算法程序的长度 B. 算法程序中的指令条数 C. 算法程序所占的存储空间 D. 算法执行过程中所需要的存储空间 (13) 设一棵完全二叉树共有699个结点,则在该二叉树中的叶子结点数为(B) 注:利用公式n=n0+n1+n2、n0=n2+1和完全二叉数的特点可求出 A. 349 B. 350 C. 255 D. 351 (14) 结构化程序设计主要强调的是(B) A.程序的规模 B.程序的易读性 C.程序的执行效率 D.程序的可移植性 (15) 在软件生命周期中,能准确地确定软件系统必须做什么和必须具备哪些功能的阶段是 (D) 注:即第一个阶段 A. 概要设计 B. 详细设计 C. 可行性分析 D. 需求分析 (16) 数据流图用于抽象描述一个软件的逻辑模型,数据流图由一些特定的图符构成。下列图符名标识的图符不属于数据流图合法图符的是(A) 注:P67

华为C语言机试题面试题汇总

1.第一题的题目大概是输入整型数组求数组的最小数和最大数之和,例如输入1,2,3,4则输出为5,当输入只有一个数的时候,则最小数和最大数都是该数,例如只输入1,则输出为2;另外数组的长度不超过50 #include main() { int num[50]={0}; int i,n; printf("请输入整型数组的长度(1~50):"); scanf("%d",&n); printf("请输入整型数组的元素:"); for (i=0;inum[j]) min_num=num[j]; } int sum=min_num+max_num; printf("数组中最大与最小值之和:%d\n",sum); return 0; } 2.求两个长长整型的数据的和并输出,例如输入1233333333333333。。。3111111111111111111111111.。。。,则输出。。。。 #include #include #include main() { char *num1,*num2;//两个长长整型数据 char *sum; //int temp; int len_num1,len_num2; //两个长长整型数据的长度

c语言上机机试习题

一、题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔 子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数 为多少 程序分析:兔子的规律为数列1,1,2,3,5,8,13,21.... 程序源代码: main() { longf1,f2; inti; f1=f2=1; for(i=1;i<=20;i++) {printf("%12ld%12ld",f1,f2); if(i%2==0)printf("\n");/*控制输出,每行四个*/ f1=f1+f2;/*前两个月加起来赋值给第三个月*/ f2=f1+f2;/*前两个月加起来赋值给第三个月*/ } } 上题还可用一维数组处理,youtry! 二、题目:判断101-200之间有多少个素数,并输出所有素数。 程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。 程序源代码: #include"" main() { intm,i,k,h=0,leap=1; printf("\n"); for(m=101;m<=200;m++) {k=sqrt(m+1); for(i=2;i<=k;i++) if(m%i==0)

{leap=0;break;} if(leap){printf("%-4d",m);h++; if(h%10==0) printf("\n"); } leap=1; } printf("\nThetotalis%d",h); } 三、题目:打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个“水仙花数”,因为153=1的三次方+5的三次方+3的三次方。 程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。 程序源代码: main() { inti,j,k,n; printf("'waterflower'numberis:"); for(n=100;n<1000;n++) { i=n/100;/*分解出百位*/ j=n/10%10;/*分解出十位*/ k=n%10;/*分解出个位*/ if(i*100+j*10+k==i*i*i+j*j*j+k*k*k) { printf("%-5d",n); } } printf("\n"); } 四、题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。 程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:

国家二级C语言程序设计机试(选择题)模拟试卷3

国家二级C语言程序设计机试(选择题)模拟试卷3 (总分:80.00,做题时间:90分钟) 一、选择题(总题数:40,分数:80.00) 1.下列数据结构中,属于非线性结构的是( )。 (分数:2.00) A.循环队列 B.带链队列 C.二叉树√ D.带链栈 解析:解析:线性结构的特点:①有且只有一个根结点;②每一个结点最多有一个前驱,也最多有一个后继。不满足线性结构条件的称为非线性结构,二叉树的非叶子结点最多可以用两个后继结点,属于非线性结构。 2.算法的空间复杂度是指( )。 (分数:2.00) A.算法在执行过程中所需要的计算机存储空间√ B.算法所处理的数据量 C.算法程序中的语句或指令条数 D.算法在执行过程中所需要的临时工作单元数 解析:解析:算法的空间复杂度是指算法在执行过程中所需要的内存空间,因此本题答案为A。 3.下列数据结构中,能够按照“先进后出”原则存取数据的是( )。 (分数:2.00) A.循环队列 B.栈√ C.队列 D.二叉树 解析:解析:栈是按“先进后出”的原则组织数据的;队列是按“先进先出”的原则组织数据的,因此本题答案为B。 4.软件设计中划分模块的一个准则是( )。 (分数:2.00) A.低内聚、低耦合 B.高内聚、低耦合√ C.低内聚、高耦合 D.高内聚、高耦合 解析:解析:一般较优秀的软件设计应尽量做到高内聚、低耦合,即减弱模块之间的耦合性和提高模块内的内聚性,有利于提高模块的独立性,因此本题答案为B。 5.结构化程序的三种基本控制结构是( )。 (分数:2.00) A.顺序、选择和重复(循环) √ B.过程、子程序和分程序 C.顺序、选择和调用 D.调用、返回和转移 解析:解析:结构化程序设计中三种基本控制结构为顺序、选择和重复(循环),故正确答案为A。 6.软件需求规格说明书在软件开发中的作用不包括( )。 (分数:2.00) A.软件设计的依据 B.软件可行性分析的依据√ C.软件验收的依据

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

2016年计算机二级c语言题库及答案 一、选择题(每小题1分,共40小题,共40分) 1.设循环队列的存储空间为Q(1:35),初始状态为front=rear=35。现经过一系列入队与退队运算后,front=15,rear=15,则循环队列中的元素个数为( )。 A.20 B.0或35 C.15 D.16 2.下列关于栈的叙述中,正确的是( )。 A.栈底元素一定是最后入栈的元素 B.栈操作遵循先进后出的原则 C.栈顶元素一定是最先入栈的元素 D.以上三种说法都不对 3.下列链表中,其逻辑结构属于非线性结构的是( )0、 A.双向链表 B.带链的栈 C.二叉链表 D.循环链表 4.在关系数据库中,用来表示实体间联系的是( )。 A.网状结构 B.树状结构 C.属性 D.二维表 5.公司中有多个部门和多名职员,每个职员只能属于一个部门,一个部门可以有多名职员。则实体部门和职员间的联系是( )。 A.1:m联系 B.m:n联系 C.1:1联系 D.m:l联系

6.右两个关系R和S如下: 则由关系R得到关系S的操作是( )。 A.自然连接 B.并 C.选择 D.投影 7.数据字典(DD)所定义的对象都包含于( )。 A.软件结构图 B.方框图 C.数据流图(DFD图) D.程序流程图 8.软件需求规格说明书的作用不包括( )。 A.软件设计的依据 B.软件可行性研究的依据 C.软件验收的依据 D.用户与开发人员对软件要做什么的共同理解 9.下面属于黑盒测试方法的是( )。 A.边界值分析 B.路径覆盖 C.语句覆盖 D.逻辑覆盖 10.下面不属于软件设计阶段任务的是( )。 A.制订软件确认测试计划 B.数据库设计 C.软件总体设计 D.算法设计 11.以下叙述中正确的是( )。 A.在C语言程序中,main函数必须放在其他函数的最前面 B.每个后缀为C的C语言源程序都可以单独进行编译 C.在C语言程序中,只有main函数才可单独进行编译

c语言机试题汇总

第一部分-分支、循环部分 1、某一次考试之后,需要统计考生(10人)的平均成绩,并找出其中的最高分和最低分。 2、从键盘输入两个正整数,输出这两个整数的商,要求商的小数点后保留5位。例如输入355和113, 输出3.14159. 3、用while循环结构编写程序打印ASCII码为33-127的字符 4、用do-while,for循环结构编写程序打印ASCII码为33-127的字符 5、用for循环结构编写程序打印ASCII码为33-127字符 6、在1-500中,找出能同时满足用3除余2,用5除余3,用7除余4的所有整数,用循环结构 7、输入一个整数将其倒着输出,如54321 8、计算s=1+1/3+1/5+…+1/n,截止到1/n<10-4 9、从键盘输入一整数n,计算1*1+2*2+...+n*n的值 10、用while 循环计算1+2+……+100的和 11、用do while循环计算1+2+……+100的和 12、用for 循环计算1+2+……+100的和 13、输入一个小于等于10的整数n ,计算n! 14、输入两个正整数m和n,计算m!+n!,m和n的值均小于10。 15、用循环语句,计算1~100之间的所有3的倍数之和 16、用循环语句,计算100-200之间的所有7的倍数之和 17、输出1-100之间,7的整数倍数或数字尾数为7的数字,统计出这些数字个数 18、输入一行字符,分别统计出其中英文字母,空格,数字和其他字符的个数 19、输入一个整数,统计它有几位数 20、编写程序,输出1到50中间所有能被3整除的正整数 21、把100~200之间不能被3整除的输出 22、编程Y=1+3+5+7+ (111) 23、编程y=1*1/2*1/3*1/4*1/5*1/6*...前十项之积 24、编程实现九九乘法表 25、求1到100奇数和 26、求1到100偶数和 27、编程求200以内所有质数(素数) 28、从键盘输入一个整数,求该数的绝对值 29、从键盘输入+、-、*、/中的任一个,输出对应的英文单词:plus、minus、mutiply、divide,如输入 的不是这4个字符中的任一个,则输出“sorry,you are wrong”。 30、从键盘输入一个字符,判断其是否为a,r,或f,并输出相应的信息(不区分大小写)。 31、编一程序,对于给定的一个百分制成绩,输出用像'A','B','C','D','E'表示的等级成 绩。设:90分以上为'A',80~89分为'B',70~79分为'C',60~69分'D',60分以下为'E'。(要求用switch语句编程)。 32、输入一个整数,判断它能否被3,5,7整除。 33、用整数1~12依次表示1~12月,由键盘输入一个月份数,输出对应的季节英文名称(12~2 月为冬季;3~5月为春季;6~8月为夏季;9~11月为秋季。要求用if嵌套实现)。 34、编写输入整数a,b,c,当a为1时显示b和c之和,a为2时显示b与c之差,a为3 时显示b*c之积,a为4时取b/c之商,a为其他数值时不做任何操作的程序。

全国计算机二级C选择题试题库第34套

全国计算机二级C选择题题库第34套 1、下列叙述中错误的是 A) 数据结构中的数据元素不能是另一数据结构 B) 数据结构中的数据元素可以是另一数据结构 C) 空数据结构可以是线性结构也可以是非线性结构 D) 非空数据结构可以没有根结点 参考答案:A 数据元素是一个含义很广泛的概念,它是数据的"基本单位",在计算机中通常作为一个整体进行考虑和处理。数据元素可以是一个数据也可以是被抽象出的具有一定结构数据集合,所以数据结构中的数据元素可以是另一数据结构。 满足有且只有一个根结点并且每一个结点最多有一个前件,也最多有一个后件的非空的数据结构认为是线性结构,不满足条件的结构为非线性结构。 空数据结构可以是线性结构也可以是非线性结构。非空数据结构可以没有根结点,如非性线结构"图"就没有根结点。 故选A选项。 2、为了降低算法的空间复杂度,要求算法尽量采用原地工作(in place)。所谓原地工作是指 A) 执行算法时所使用的额外空间固定(即不随算法所处理的数据空间大小的变化而变化) B) 执行算法时所使用的额外空间随算法所处理的数据空间大小的变化而变化 C) 执行算法时不使用额外空间 D) 执行算法时不使用任何存储空间 参考答案:A 算法的空间复杂度是指执行这个算法所需要的内存空间,包括输入数据所占的存储空

间、程序本身所占的存储空间、算法执行过程中所需要的额外空间。 如果额外空间量相对于问题规模(即输入数据所占的存储空间)来说是常数,即额外空间量不随问题规模的变化而变化,则称该算法是原地工作的。 故选A选项 3、某循环队列的存储空间为Q(1:m),初始状态为front=rear=m。现经过一系列的入队操作和退队操作后,front=m,rear=m-1,则该循环队列中的元素个数为 A) m-1 B) m C) 1 D) 0 参考答案:A 循环队列长度为m,由初始状态为front=rear=m,可知此时循环队列为空。入队运算时,首先队尾指针进1(即rear+1),然后在rear指针指向的位置插入新元素。特别的,当队尾指针rear=m+1时,置rear=1。退队运算时,排头指针进1(即front+1),然后删除front指针指向的位置上的元素,当排头指针front=m+1时,置front=1。 从排头指针front指向的后一个位置直到队尾指针rear指向的位置之间所有的元素均为队列 中的元素。如果rear-front>0,则队列中的元素个数为rear-front个;如果rear-front<0,则队列中的元素个数为rear-front+m 。该题中m-1

计算机二级c语言1-3章先择题(带答案)

1.第一章第二章 1.C语言的函数体由()括起来。 A)<> B){} C)[] D)() 2.下面叙述错误的是() A)一个C源程序可由一个或多个函数组成 B)构成C语言源程序的基本单位是语句 C)C源程序中大、小写字母是有区别的 D)若一条语句较长,可分写在下一行或多行上 3.下面叙述正确的是() A)每行最多只能写两条语句 B)main()函数必须位于源程序文件的开头C)所有语句都必须以分号;结束 D)程序中必须含有自定义函数 4.C源程序中main()函数的位置()。 A)必须位于程序的最前面 B)必须在自定义函数前面C)必须在系统库函数后面 D)可以在自定义函数后面 5.结构化程序设计不包括()。 A)最优化 B)自顶而下,逐步细化C)模块化设计 D)结构化编码 6.下面叙述中,()不是结构化程序设计中的三种基本结构之一。 A)数据结构B)选择结构C)循环结构D)顺序结构

2.第三章数据类型、运算符和表达式 1.(B )为非法的字符串常量 A)“056”B)‘123’C)““D)“case” 2.( B )为正确的用户标识符。 A)min-5 B)max_at C)3_row D)union 3.以下(D )是正确的变量名。 A) a.bee B) -p11 C) int D) p_11 4.以下(D )是正确的变量名。 A)5f B)if C) f.5 D)_f5 5.以下(D )是正确的常量。 A)E-5 B)1E5.1 C)'a12' D)32766L 6.以下(A )是不正确的字符串常量。 A)'abc' B)"12'12" C)"0" D)" " 7.以下(BC )是正确的字符常量。 A)"c" B)'\\' C)'W' D)"\32a" 8.char型变量存放的是(A)。 A)ASCII代码值 B)字符本身C)十进制代码值 D)内码值 9.( B)为合法的常量。 A)5,236 B) 1.23E+8 C)‘b_k’D) 3.21E-6.5 10.(D)为正确的字符常量 A)‘\084’B)‘bcd’C)‘165’D)‘@’ 11.若有定义:int b=-15;则(D)为正确的赋值表达式。 A)*b=6 B)b=*5 C)b+10=-5 D)b+=b*3 12.若有定义:int x=2;则正确的赋值表达式是(A )。 A)a-=(a*3) B)double(-a) C)a*3 D)a*4=3 13.若有定义:float x=2,y;int a=3 ;语句y=1*(x+a)/3;运行后,y的值为(B)。 A)2.0 B)1.666667 C)1.0 D)0 14.若有定义:int a,b=5;语句a=(b/2)+b%2;运行后,a的值为(A ) A) 3 B) 4 C)0 D)2 15.下面叙述正确的是(B) A)2/3与2%3等价 B)5/(int)4.0与5/4等价C)++2与--3等价 D)++2与3等价 16.若有定义:int a,b=6;语句a=--b;运行后,a、b的值分别是(C)。 A) 6 6 B) 5 6 C) 5 5 D) 6 5 17.若有定义:int i=3,j=6;则表达式(--i)*(j++)的值为( D)。

国家二级C语言机试(C语言程序设计)模拟试卷33

国家二级C语言机试(C语言程序设计)模拟试卷33 (总分:70.00,做题时间:90分钟) 一、选择题(总题数:35,分数:70.00) 1.要求通过while循环不断读入字符,当读入字母N时结束循环。若变量已正确定义,以下正确的程序段是 (分数:2.00) A.while(ch=getchar0='N')printf("%c",ch); B.while(ch=getchar()=="N")printf("%c",ch); C.while((ch=getchar())!='N')printf("%c",ch);√ D.while((ch=getchar())=='N')printf("%c",ch); 解析:解析:while循环的执行过程如下:①计算while后面圆括号中表达式的值,当值为非0时,执行步骤②;当值为0时,执行步骤④;②执行循环体一次:③转去执行步骤①;④退出循环。在选项C 中,表达式(ch=getchar())!='N'表示输入的字符不等于N,如果这个条件表达式成立,则执行循环体,打印输出输入的字符。如果这个条件表达式不成立,即输入的字符等于N,则退出循环。 2.若有以下程序 main(){int a=-2,b=0; while(a++) ++b; pfintf("%d,%d\n",a,b);} 则程序的输出结果是 (分数:2.00) A.0,2 B.1,2 √ C.1.3 D.2,3 解析:解析:循环体执行两次,第一次表达式a++值为-2,a的值为-1,执行循环体++b,b值为1,第二次表达式a++值为-1,a的值等于0,执行++b,b值为2,第三次判断条件a++,表达式值为0,不执行循环体,但是条件判断以后,a的值为1。 3.由以下while构成的循环,循环体执行的次数是int k=0;while(k=1)k++; (分数:2.00) A.一次也不执行 B.执行一次 C.无限次√ D.有语法错,不能执行 解析:解析:循环条件表达式为赋值表达式k=-1,因此循环执行无限次。 4.有以下程序 main(){ant a=-2,b=0; while(a++&&++b); printf("%d,%d\n",a,b);} 程序运行后输出结果是 (分数:2.00) A.0,3 B.1,2 √ C.1,3 D.0,2 解析:解析:循环体为空,共执行2次。第一次变量a初值为-2,b初值为0,表达式a++&&++b值为1,同时a的值为-1,b的值为1,第二次循环条件判断以后,a的值为0,b的值2,执行循环体空,第三次判断条件表达式值为0,不执行循环体,而a的值为1,但是表达式a++的值为0,因此不计算表达式++b的值,b的值仍为2。 5.关于do循环体while(条件表达式);以下叙述中正确的是 (分数:2.00) A.循环体的执行次数总是比条件表达式的执行次数多一次 B.条件表达式的执行次数总是比循环体的执行次数多一次 C.条件表达式的执行次数与循环体的执行次数无关

相关文档
最新文档