文档库 最新最全的文档下载
当前位置:文档库 › C题

C题

C题
C题

题目:

下列程序的功能是:根据整型形参n,计算如下公式的值。请改错:

A1=1,A2=1/(1+A1),A3=1/(1+A2),…….,An=1/(1+An_1)

例如:若n=10,则输出A10为0.617977。

#include "stdio.h"

int fun(int n) /*$ERROR1$*/

{float a=0; /*$ERROR2$*/

int i;

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

a=1/(1+a);

return a;

}

main()

{int n;

printf("\nPlease Enter a value of n");

scanf("%d",&n);

printf("A%d=%f\n",n,fun); /*$ERROR3$*/

}

改错题:2

题目:

下面的程序先打印所给的前三个字符串,然后再打印前三个字符串的首字符。请改错:

main()

{

char alpha[5]={"a","bc","def","l","23"},**p; /*$ERROR1$*/

int i;

p=alpha;

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

printf("%s",**p); /*$ERROR2$*/

printf("\t");

p=p-3;

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

printf("%c\t",*p); /*$ERROR3$*/

printf("\n");

}

改错题:3

题目:

以下程序分别在a数组和b数组中放入an+1和bn+1个由小到大的有序数,程序把两个数组中的数按由小到大的顺序归并到c数组中。请改错:

#include

main()

{int a[10]={1,2,5,8,9,10},an=5;

int b[10]={1,3,4,8,12,18},bn=5;

int i,j,k,c[20],max=9999;

a[an]=b[bn]=max; /*$ERROR1$*/

i=j=k=0;

while((a[i]!=max)&&(b[j]!=max)) /*$ERROR2$*/

if(a[i]

else {c[k]=b[k];k++;j++;} /*$ERROR3$*/

for(i=0;i

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

printf("\n");

}

改错题:4

题目:

以下程序判断输入的字符串是否“回文”(即顺读和倒读都一样,例如:LEVEL,a1221a)。请改错:

#include

#include

main()

{char s[81];

int i,j,n;

gets(s);

n=strlen(s);

i=0;

j=n; /*$ERROR1$*/

while(s[i]==' ') i++;

while(s[j]==' ') j--;

while(i

{i++;j--;}

if(i>j) printf("No\n"); /*$ERROR3$*/

else printf("Y es\n");

}

改错题:5

题目:

以下程序将输入的数字字符序列转化成一个整数。请改错:

#include

#include

main()

{char c[10];

int i=0,j;

long k=0;

gets(c);

j=strlen(c);

for(;i

if(c[i]>='0'|| c[i]<='9') /*$ERROR1$*/

k=k*10+c[i]; /*$ERROR2$*/

printf("k=%d\n",k); /*$ERROR3$*/

}

改错题:6

题目:

以下程序计算200以内的其平方具有回文性质的正整数的数目。例如

11^2=121,111^2=12321都是满足条件的正整数。请改错:

#include

sqrtest(int x)

{int s,y;

s=x*x;

y=0;

while(s)

{y=y*10+s/10; /*$ERROR1$*/

s=s%10; /*$ERROR2$*/

}

if (y!=x*x) return 1; /*$ERROR3$*/

else return 0;

}

main()

{int n,count=0;

for(n=10;n<200;n++)

if (sqrtest(n)) {count++;printf("n=%3d,n*n=%d\n",n,n*n);}

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

}

改错题:7

题目:

以下程序将十进制正整数n转换成十六进制数,并存入字符串str中。请改错:main()

{ unsigned n,h;

int i=0;

char str[4];

printf("Input a decimal Number to n:");

scanf("%d",&n);

do

{h=n/16; /*$ERROR1$*/

str[i++]=(h<=9) ? h+'0':h+'A'-10;

n=n%16; /*$ERROR2$*/

} while (n);

for(--i;i>=0;)

printf("%s",str[i--]); /*$ERROR3$*/

printf("\n");

}

改错题:8

题目:

以下程序能够将字符串str1和字符串str2合并成一个新字符串str3。请改错:#include

main()

{char str1[30],str2[20],str[60];

int i=0,j=0;

printf("Enter first string:");

gets(str1);

printf("Enter second string:");

gets(str2);

while(str1[i])str[i]=str1[i];i++; /*$ERROR1$*/

while(str2[j]){str[i++]=str2[j];i++;} /*$ERROR2$*/

str[i]="\0"; /*$ERROR3$*/

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

}

改错题:9

题目: 以下程序实现将字符串反向存储。请改错:

main()

{char str[70],ch,*p,*temp;

printf("Enter string to str:");

scanf("%s",str);

p=str;

temp=str;

while(temp) temp++; /*$ERROR1$*/

*temp--; /*$ERROR2$*/

while(p>temp) /*$ERROR3$*/

ch=*p,*p++=*temp,*temp--=ch;

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

}

改错题:10

题目:

随机输入10个数,选出其中的最大数。请改错:

程序如下:

main()

{

int i,max,a[10];

printf("input 10 number:\n");

for(i=0;i<=10;i++) /*$ERROR1$*/

scanf("%d",a[i]); /*$ERROR2$*/

max=a[0];

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

if (a[i]>a[0]) /*$ERROR3$*/

max=a[i];

printf("minnum=%d\n",max);

}

改错题:11

题目:

下面程序的功能是输出a数组中的所有字符串。请改错:

main()

{

char *a[]={"Follow me","Basic","Turbo C","Fortran"};

char *p ; /*$ERROR1$*/

p=a;

while(p<=a+4) /*$ERROR2$*/

printf("%s\n",*(++p)); /*$ERROR3$*/

}

改错题:12

题目:

以下程序是用函数实现“冒泡法”对输入的n个字符按由小到大排列,并在主函数中调用。请改错:

#include "stdio.h"

#include "string.h"

void sort(char str[],int n)

{

int i,j;char t;

for(j=1;j

for(i=0;i

if(str[i]

{

t=str[i];

str[i]=str[i+1];

str[i+1]=t;

}

}

main()

{char str[81];

int len;

gets(str);

len=strlen(str);

sort(str[],len); /*$ERROR3$*/

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

改错题:13

题目:

将一个数组中的值按逆序重新存放。例如原来顺序为:8、16、5、4、11。要求改为:11、4、5、16、8。请改错:

程序如下:

#define N 5

main()

{

int a[N],i,t;

for(i=0;i

scanf("%d",a[i]); /*$ERROR1$*/

printf("Old array a:\n");

for(i=0;i

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

for(i=0;i

t=a[i]; a[i]=a[N-i-1]; a[N-i-1]=t; /*$ERROR3$*/

printf("\nNew array a:\n");

for(i=0;i

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

}

改错题:14

题目: 下列程序的功能是:判断某一年是否是闰年。闰年的条件是符合下面二者之一:(1) 能被4整除,但不能被100整除。(2)能被400整除。请改错:

main()

{

int year,leap;

scanf("%d",year); /*$ERROR1$*/

if(year%4==0||year%100!=0&&year%400==0) /*$ERROR2$*/

leap=1;

else

leap=0;

if(leap=1) /*$ERROR3$*/

printf("%d is a leap year\n",year);

else

printf("%d is not a leap year\n",year);

}

改错题:15

题目:

以下程序是求1至1000之间满足“用3除余2;用5除余3;用7除余2”的数,且一行只打印5个数。请改错:

main()

{

int i=1,j=0;

do{

if(i%3==2||i%5==3||i%7==2) /*$ERROR1$*/

{

printf("%4d",i);

j++;

if(j/5==0) /*$ERROR2$*/

printf("\n");

}

i++;

}

while(i>1000); /*$ERROR3$*/

}

改错题:16

题目:

有10个字符串,下面程序的功能是在每个字符串中,找出最大的字符按一一对应的顺序放入一维数组a中,即第i个字符串中的最大字符放入a[i]中,输出每个字符串中的最大字符。请改错:

#include "stdio.h"

main()

{ char s[10][20],a[10];

int i,j;

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

gets(s); /* $ERROR1$*/

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

{

a[i]=0; /* $ERROR2$*/

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

if(a[i]>s[i][j]) /* $ERROR3$*/

a[i]=s[i][j] ;

}

for(i=0;i<10;i++) printf("%d: %c ",i,a[i]);

}

改错题:17

题目:

设数组a包括10个整型元素,下面程序的功能是:求出数组a中各相邻两个元素的和,并将这些和存在数组b中,按每行3个元素的形式输出。请改错:

main()

{ int i,a[10],b[10];

printf("input array a :\n");

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

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

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

b[i]=a[i]+a[i+1]; /* $ERROR1$*/

for(i=0;i<10;i++) /* $ERROR2$*/

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

if(i%3!=0) /* $ERROR3$*/

printf("\n");

}

}

改错题:18

题目:

设有三人的姓名和年龄存在结构体数组中,以下程序输出三人年龄居中者的姓名和年龄。请改错:

struct person

{

char name[20];

int age;

};

main()

{

struct per[]={"LiMing",18, /* $ERROR1$*/

"WangHua",19,

"ZhangPing",20};

int i,max,min;

max=min=per[0]; /* $ERROR2$*/

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

if(per[i].age>max) max=per[i].age;

else if(per[i].age

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

{

if(per[i].age!=max||per[i].age!=min) /* $ERROR3$*/

{

printf("%s: %d\n",per[i].name,per[i].age);

break;

}

}

}

改错题:19

题目:

下面程序的功能是:从键盘输入的一批正整数中求出最大者,输入0时结束循环。请改错:

#include "stdio.h"

main()

{long a,max=0;

do{

scanf("%ld",&a);

if(max>a) /*$ERROR1$ */

max=a;

}while(!a); /**$ERROR21$/

printf("max=%d\n",max); /* $ERROR3$*/

}

改错题:20

题目:

下面程序的功能是:输出1至100之间满足以下条件的数,条件是组成该数的每位数字的乘积大于每位数字的和(如24:2*4>2+4)。请改错:

#include "stdio.h"

main()

{int n,m,s,k;

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

{

k=1;s=0;

n=m; /* $ERROR1$*/

while(m)

{k*=m%10;

s+=m%10;

m%=10; /* $ERROR2$*/

}

if(s>k) /* $ERROR3$*/

printf("%5d",n);

}

}

改错题:21

题目:

下面程序的功能是:选出能被3整除且至少有一位字是5 的两位数,打印出所有这样的数及其总个数。请改错:

int sub(int k)

{ int a1,a2;

a2=k/10;

a1=k-a2; /* $ERROR1$*/

if(k%3==0||(a1==5&&a2==5)) /* $ERROR2$*/

{printf("%4d",k);

return (1);}

else return(-1);

}

main()

{int n=0,m,k;

for(k=10;k<100;k++)

{m=sub(k);

if(m=1) /* $ERROR3$*/

n++;

}

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

}

改错题:22

题目:

下面程序的功能是:求算式xyz+yzz=532中x,y,z的值(其中xyz和yzz分别表示一个三位数)。请改错:

main()

{

int x,y,z,i;result=532; /* $ERROR1$*/

for(x=1;x<10;x++)

for(y=1;y<10;y++)

for(z=1;z<10;z++) /* $ERROR2$*/

{i=100*x+y*10+z+100*y+10*z+z;

if(i=result) /* $ERROR3$*/

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

}

}

改错题:23

题目:

下面程序的功能是:打印100以内个位数为6且能被3整除的所有的数,输出时每个数据占一行,不要设置输出数据所占的宽度。请改错:

main()

{

int i,x;

printf("\n");

for(i=1;i<10;i++) /* $ERROR1$*/

{x=i*10+6;

if(x%3!=0)

break; /* $ERROR2$*/

printf("%f\n",x); /* $ERROR3$*/

}

}

改错题:24

题目:

不用strcat函数,将键盘输入的两个字符串连接起来形成一个新串。

main()

{

char str1[40],str2[20];

int i,j=0;

printf("Enter string No.1:\n");

gets(str1);

printf("Enter string No.2:\n");

scanf("%s",&str2); /*$ERROR1$*/

for(i=0;str1[i]='\0';i++); /*$ERROR2$*/

while((str1[i++]==str2[j])!='\0'); /*$ERROR3$*/

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

}

改错题:25

题目: 下面程序的功能是输出字符串。

main()

{

char *a[]={"English","Chinese","American","French"};

char *p ; /*$ERROR1$*/

int j=0;

p=a;

for(;j<=4;j++) /*$ERROR2$*/

printf("%s\n",*p ); /*$ERROR3$*/

}

改错题:26

题目:

以下程序是将输入的十进制数转换为二进制数输出。

#include

main()

{int y,i=0,j,a[16];

scanf("%d",&y);

do

{

a[i]=y%2; /*$ERROR1$*/

y/=2;

}while(y>=0); /*$ERROR2$*/

for(j=i;j>=0;j--) /*$ERROR3$*/

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

printf("\n");

}

改错题:27

题目:

下列程序中,函数FUN的功能是:计算并输出K以内最大的10个能被13或17整除的自然数之和。

int fun ( int k)

{ int m=0,mc=0;

while ((k>=13)||(mc<10)) /*$ERROR1$*/

{

if (( k%13==0)&&(k%17==0)) /*$ERROR2$*/

{m+=k;

mc++;

}

k++; /*$ERROR3$*/

}

return(m);

}

main()

{ printf("%d\n",fun(500));

}

改错题:28

题目: 下面程序把数组元素的最大值放入a[0]中,请改正程序中的错误。main()

{ int a[10]={4,8,12,3,6,7,20,11,9,5} ,i;

int *p=a;

for(i=0;i<=10;i++,p++) /*$ERROR1$*/

if(p>a[0]) /*$ERROR2$*/

*a=*p;

printf("%d",a); /*$ERROR3$*/

}

改错题:29

题目:

统计从键盘输入的文本中的数字字符、空格符、英文字母和其它字符的个数。#include

main()

{

int i,ndigit,nwhite,nletter,nother;

char c;

ndigit=nwhite=nletter=nother=0;

while((c=getchar())==EOF) /*$ERROR1$*/

{

if(c>='0'||c<='9') /*$ERROR2$*/

ndigit++;

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

nletter++;

else if(c=' '||c='\n') /*$ERROR3$*/

nwhite++;

else

nother++;

}

printf("ndigit:%d,nletter:%d,",ndigit,nletter);

printf("nwhite:%d,nother:%d\n",nwhite,nother);

}

改错题:30

题目:

以下程序的功能是:找出10个整数中的最大数和最小数,请改正其中的错误。main()

{

int i,max,min,a[10];

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

scanf("%d",a[i]); /*$ERROR1$*/

max=min=a[0];

for(i=0;i<=10;i++) /*$ERROR2$*/

{if(a[i]>max)

max=a[i];

if(a[i]>min) /*$ERROR3$*/

min=a[i];

}

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

}

改错题:31

题目:

输入3个整数,按从小到大的顺序输出。

main()

{

int n1,n2,n3;

int *pointer1,*pointer2,*pointer3;

printf("please input 3 number:n1,n2,n3:");

scanf("%d,%d,%d",n1,n2,n3); /*$ERROR1$*/

pointer1=&n1;

pointer2=&n2;

pointer3=&n3;

if(n1>n2) swap(pointer1,pointer2);

if(n1>n3) swap(pointer1,pointer3);

if(n2>n3) swap(pointer2,pointer3);

printf("the sorted numbers are:%d,%d,%d\n",n1,n2,n3);

}

swap(p1,p2)

int *p1,*p2;

{

int p;

*p=*p1; /*$ERROR2$*/

*p1=*p2;

*p2=*p; /*$ERROR3$*/

}

改错题:32

题目:

写一个函数,求一个字符串的长度。要求在主函数中输入字符串,并输出其长度。main()

{

int len;

char *str[20];

printf("please input a string:\n");

scanf("%s",&str); /*$ERROR1$*/

len=length(str);

printf("the string has %d characters.",len);

}

length(p)

char *p;

{

int n;

n=0;

while(p!='\0') /*$ERROR2$*/

{

n++;

p--; /*$ERROR3$*/

}

return n;

}

改错题:33

题目:

求s=a+aa+aaa+aaaa+...+aa...a的值,其中a是一个数字。例如4+44+444+4444+44444+444444(此时共有6个数相加),有几个数相加由键盘控制。

#include

main()

{

int n,count=1;

int a=4,sn=0,tn=0; /*$ERROR1$*/

printf("please input n\n");

scanf("%d",&n);

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

while(count

{

tn=tn+a;

sn=sn+tn;

a=a*10;

++count;

}

printf("%d\n",sn); /*$ERROR3$*/

}

改错题:34

题目:

铁路托运行李收费,按规定从甲地到乙地每张客票托运行李不超50公斤时,每公斤按0.13元计算,如超过50公斤,超过部分按每公斤0.20元计算。输出若干件行李托运费总计。#include

main()

{ float w;

double s;

double compute();

for( ; ; )

{ printf("Enter weight:");

scanf("%10f",w); /*$ERROR1$*/

if(w==0)

exit(0);

s=compute(w);

printf("%10.2d\n",s); /*$ERROR2$*/

}

}

double compute(w)

float w;

{

double s;

double total=0; /*$ERROR3$*/

if(w<=50.0)

s=0.13*w;

else

s=50.0*0.13+(w-50.0)*0.20;

total+=s; /*记录托运费总计*/

printf("Total:%10.2f\n",total);

return (s);

二、填空题

注意事项

1.请删除标有$BLANK?$的程序行上的下划线,将正确的答案填在原下划线处

2.请不要删除$BLANK?$填空标志

3.请不要将需要填空的行分成多行

4.请不要修改任何注释

5.不要自己运行Windows下的MSDOS 方式

进入TC进行编程等,其结果不能保证正确回收,导致评分错误

填空题:1

题目:

计算学生的平均成绩和不及格的人数。请完善程序:

struct stu

{ int num;

char *name;

char sex;

float score;

};

main( )

{

____ student[5]={ {101,"Li ping",'M',45}, /*$BLANK1$*/

{102,"Zhang ping",'M',62.5},

{103,"He fang",'F',92.5},

{104,"Cheng ling",'F',87},

{105,"Wang ming",'M',58},

};

int i,c=0;

float ave,s=0;

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

{

s+=____; /*$BLANK2$*/

if(____<60) c++; /*$BLANK3$*/

}

ave=s/5;

printf("average=%f\ncount=%d\n",ave,c);

}

填空题:2

题目:

以下程序用函数的递归调用打印n的阶乘值。请完善程序:

long fac(int n)

{

long f;

if(n<0) printf("n<0,data error");

else if(n==0||n==1) f=1;

else f=___; /*$BLANK1$*/

___; /*$BLANK2$*/

}

main()

{

long y;

printf("input a integer number:");

scanf("%d",&n);

y= ___ ; /*$BLANK3$*/

printf("%d!=%ld",n,y);

}

填空题:3

题目:

有一个3×4的矩阵,要求编程以求出其中值最大的那个元素,以及它所在的行号和列号。请完善程序:

程序如下:

main()

{

int i,j,row,col,max;

int a[3][4]={{3,5,1,8},{6,4,11,7},{9,3,10,2}};

max=___; /*$BLANK1$*/

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

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

if(___) /*$BLANK2$*/

{ max=___; /*$BLANK3$*/

row=i;

col=j;

}

printf("max=%d,row=%d,col=%d\n",max,row,col);

}

填空题:4

题目:

删除一个字符串中的某个特定字符(设本例中要删除的特定字符为s)。

请完善程序:

main()

{

char a[ ]="this is a book";

char c='s';

int i,j=0;

for(i=0;a[i]!=__;i++) /*$BLANK1$*/

if(a[i]!=___) /*$BLANK2$*/

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

___='\0'; /*$BLANK3$*/

printf("%s",a);

}

填空题:5

题目:

编程输出以下的杨辉三角形(输出前10行)。请完善程序:

1

1 1

1 2 1

1 3 3 1

1 4 6 4 1

1 5 10 10 5 1

1 6 15 20 15 6 1

#define N 10

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

for(i=0;i

{ a[i][i]=1;

___=1; /*$BLANK1$*/

}

for(i=2;i

for(j=1;j<=i-1;j++)

a[i][j]=___; /*$BLANK2$*/

for(i=0;i

{

for(j=0;___;j++) /*$BLANK3$*/

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

printf("\n");

}

}

填空题:6

题目:

写两个函数,分别求两个整数的最大公约数和最小公倍数,用主函数调用这两个函数并输出结果。请完善程序:

程序如下:

main()

{

int m,n,cd,cm;

printf("Input two number, please!\n");

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

cd=gcd(m,n);

cm=gcm(___); /*$BLANK1$*/

printf("gcd=%d\n",cd);

printf("gcm=%d\n",cm);

}

int gcd(int a,int b)

{

int t;

if(a

{t=a;a=b;b=t;}

while(___) /*$BLANK2$*/

{t=___;a=b;b=t;} /*$BLANK3$*/

return a;

}

int gcm(int a,int b,int h)

{ return a*b/h; }

填空题:7

题目:

求数组的平均值。请完善程序:

#include

float mean(________) /*$BLANK1$*/

{int i;

float avg;

for(______,i=0;i

avg+=x[i];

avg/=num;

______; /*$BLANK3$*/

}

main()

{

int i,a[15];

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

a[i]=i+1;

printf("average:%6.2f\n",mean(a,15));

}

填空题:8

题目:

以下程序输出如下图所示九九表。请完善程序:

1 2 3 4 5 6 7 8 9

-------------------------------------------------

1

2 4

3 6 9

4 8 12 16

5 10 15 20 25

6 12 18 24 30 36

7 14 21 28 35 42 49

8 16 24 32 40 48 56 64

9 18 27 36 45 54 63 72 81

程序如下:

#include

main( )

{int i,j;

for(i=1;______;i++) /*$BLANK1$*/

printf("%4d",i);

printf("\n-------------------------------------------------\n");

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

for(j=1;_______;j++) /*$BLANK2$*/

printf((j==i) ? ________:"%4d",i*j); /*$BLANK3$*/

}

填空题:9

题目:

已知一个首项大于0的等差数列前四项之和是26,积是880,求该四项之值。请完善程序:

#include

main()

{int a1,sum,product,dif,a2,a3,a4;

for(a1=1;a1<5;a1++)

for (dif=1;dif<5;dif++)

{a2=(a1+dif);

a3=(a1+2*dif);

a4=(a1+3*dif);

______=a1+a2+a3+a4; /*$BLANK1$*/

______=a1*a2*a3*a4; /*$BLANK2$*/

if(sum==26 ____ product==880) /*$BLANK3$*/

printf("a1=%2d,a2=%2d,a3=%2d,a4=%2d\n",a1,a2,a3,a4);

}

}

填空题:10

题目:

以下程序编写了一个求n×n数组a的两条对角线上元素之和的函数。请完善程序:

#define N 5

#include

int sumfun(int a[N][N])

{int i,j,sum______; /*$BLANK1$*/

for(i=0;i

for(j=0;j

if(i==j ______ i+j==N-1) /*$BLANK2$*/

sum+=a[i][i];

return sum;

}

main()

{int i,j,k=0,a[N][N];

for(i=0;i

{for(j=0;j

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

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

printf("\n");

}

printf("the sum=%8d\n",sumfun______); /*$BLANK3$*/

}

填空题:11

题目:

给一百分制成绩,要求输出成绩等级'A'、'B'、'C'、'D'、'E'。90分以上为'A',80至89分为'B',70至79分为'C',60至69分为'D',60分以下为'E'。请完善程序:

main()

{ float score;int k;

______; /*$BLANK1$*/

printf("\nPlease input score:");

scanf("%f",&score);

while(score>100__score<0) /*$BLANK2$*/

{printf("\nError,Please Again:");

scanf("%f",&score);

}

k=(int)(score/10);

switch(___) /*$BLANK3$*/

{

case 10:

case 9: grade='A';break;

case 8: grade='B';break;

case 7: grade='C';break;

case 6: grade='D';break;

case 5:

case 4:

case 3:

case 2:

case 1:

case 0: grade='E';

}

printf("score=%5.1f,grade=%c\n",score,grade);

}

填空题:12

题目: 下面程序将已按升序排好序的两个字符串a和b中的字符按升序归并到字符串c中。请完善程序:

#include "stdio.h"

#include "string.h"

main()

{

char a[]="acegikm";

char b[]="bdfhjlnpq";

char c[80],*p;

int i=0,j=0,k=0;

while(a[i]!='\0'&&b[j]!='\0')

{if (a[i]

{

c[k]___ ; /*$BLANK1$*/

i++;}

else

{

c[k]____ ;/*$BLANK2$*/

j++;}

k++;

}

c[k]='\0';

if(_____=='\0') /*$BLANK3$*/

p=b+j;

else

p=a+i;

strcat(c,p);

puts(c);

}

填空题:13

题目:

下面程序的功能是求出用数字0至9可以组成多少个没有重复数字的三位偶数(例如:124,972等符合要求,而242,446等不符合要求)。请完善程序:

main()

{

int n,i,j,k;

____; /*$BLANK1$*/

for(___;i<=9;i++) /*$BLANK2$*/

for(k=0;k<=9;k++)

if (____) /*$BLANK3$*/

for(j=0;j<=8;j+=2)

if( j!=k&&j!=i)

n++;

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

}

填空题:14

题目:输入一行字符,统计其中每个英文字母(不分大小写)的个数,存放到一维数组c中。请完善程序:

#include "stdio.h"

main( )

{char ch;

int i, c[26];

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

______; /*$BLANK1$*/

while((ch=getchar())!=______) /*$BLANK2$*/

{ if(ch>='a' && ch<='z') ch-=32;

if(ch>='A' && ch<='Z')

c[______]++; /*$BLANK3$*/

}

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

{

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

printf(" c[%2d]=%6d", i, c[i]);

}

}

填空题:15

题目: 将一字符串中的小写字母转换成大写字母。请完善程序:

#include

main( )

{

char *chp,str[20];

gets(str);

________; /*$BLANK1$*/

while(*chp!='\0')

{

if(*chp>='a'&&*chp<='z')

*chp=_______; /*$BLANK2$*/

________; /*$BLANK3$*/

}

puts(str);

}

填空题:16

题目:

下面程序的功能是从键盘输入的10个整数中,找出第一个能被7整除的数。若找到,打印此数后退出循环;若未找到,打印“not exist”。请完善程序:

main()

{

int i,a;

for(i=1;___;i++) /*$BLANK1$*/

{scanf("%d",&a);

if(a%7==0)

{printf("%d",a);

_____; /*$BLANK2$*/

}

}

if(___) /*$BLANK3$*/

printf("not exist\n");

}

填空题:17

题目:

下面程序的功能是:将二维数组a的行和列元素互换后存到另一个二维数组b中。请完善程序:

main()

{ int i,j,b[3][2],a[2][3]={{1,2,3},{4,5,6}};

printf("array a :\n");

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

{for(j=0;____;j++) /*$BLANK1$*/

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

b[j][i]=______; /*$BLANK2$*/

}

printf("\n");

}

printf("array a :\n");

for(i=0;____;i++) /*$BLANK3$*/

{

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

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

printf("\n");

}

}

填空题:18

题目:

有已排好序的字符串a,下面的程序是将字符串s中的字符按升序的规律插入到a中。请完善程序:

#include "stdio.h"

#include "string.h"

main()

{

char a[20]="abfgikms";

char s[]="bdhjlnpq";

int i,j,k;

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

{ j=0;

while(s[k]>=a[j]__a[j]!='\0') /*$BLANK3$*/

j++;

for(i=strlen(a);____;i--) /*$BLANK2$*/

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

____=s[k]; /*$BLANK3$*/

}

puts(a);

}

填空题:19

题目:

下面程序的功能是:统计年龄在16--31岁之间的学生人数。请完善程序:

main()

{int a[16],n,age,i;

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

a[i]__; /*$BLANK1$*/

printf("Enter number of student:\n");

scanf("%d",&n);

printf("Enter age of each student:\n");

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

{scanf("%d",&age);

a[___]++; /*$BLANK2$*/

}

printf("The result is:\n");

printf("age number\n");

for(___;i<=31;i++) /*$BLANK3$*/

printf("%3d %4d\n",i,a[i-16]);

}

填空题:20

2019年电大C语言考试题库(c语言小题+编程)

C语言程序设计课程期末复习练习 一、单选题 1.在每个C语言程序中都必须包含有这样一个函数,该函数的函数名为( )。 A. main B. MAIN C. name D. function 2.每个C语言程序文件的编译错误分为()类。 A. 1 B. 2 C. 3 D. 4 3. 字符串"a+b=12\n"的长度为()。 A. 6 B. 7 C. 8 D. 9 4. 在switch语句的每个case块中,假定都是以break语句结束的,则此switch语句容易被改写为()语句。 A. for B. if C. do D. while 5. 在下面的do-while循环语句中,其循环体语句被执行的次数为()。 int i=0; do i++; while(i<10); A. 4 B. 3 C. 5 D. 10 6. 将两个字符串连接起来组成一个字符串时,选用的函数为()。 A. strlen() B. strcap() C. strcat() D. strcmp() 7. 若用数组名作为函数调用的实参,传递给形参的是()。 A. 数组的首地址 B. 数组中第一个元素的值 C. 数组中全部元素的值 D. 数组元素的个数 8. 假定a为一个整数类型的数组名,整数类型的长度为4,则元素a[4]的地址比a数组的首地址大( )个字节。 A. 4 B. 8 C. 16 D. 32 9. 假定s被定义为指针类型char *的变量,初始指向的字符串为"Hello world!",若要使变量p指向s所指向的字符串,则p应定义为()。 A. char *p=s; B. char *p=&s; C. char *p;p=*s; D. char *p; p=&s; 10. 从一个数据文件中读入以换行符结束的一行字符串的函数为()。 A. gets() B. fgets() C. getc() D. fgetc() 11. 由C语言目标文件连接而成的可执行文件的缺省扩展名为( )。 A. cpp B. exe C. obj D. c 12. 设有两条语句为“int a=12; a+=a*a;”,则执行结束后,a的值为( )。 A. 12 B. 144 C. 156 D. 288 13. 带有随机函数调用的表达式rand()%20的值在( )区间内。 A. 1~19 B. 1~20 C. 0~19 D. 0~20 14. for循环语句“for(i=0; i

江苏大学大一c语言期末复习题汇总

选择题1.下列字符序列中,不可用作C语言标识符的是()。 A.abc123 B.C._123_ D._ok 2.请选出可用作C语言用户标识符的一组标识符()。 A.void B.a3_b3 C.For D.2a define _123 -abc DO WORD IF Case sizeof 3.不属于C语言关键字的是()。 A.int B.break C.while D.character 4.以下不能定义为用户标示符的是()。 A.scanf B.Void C._3com_ D.int 5.C语言程序的基本单位是()。 A.程序行B.语句C.函数D.字符 6.以下说法中正确的是()。 A.C语言程序总是从第一个定义的函数开始执行 B.在C语言程序中,要调用的函数必须在main( )函数中定义 C.C语言程序总是从main( )函数开始执行 D.C语言程序中的main( )函数必须放在程序的开始部分 7.以下选项中,合法的用户标识符是()。 A.long B._2abc C.3dmax D. 8.已知大写字母A的ASCII码值是65,小写字母a的ASCII码是97,则用八进制表示 的字符常量’\101’是()。 A.字符A B.字符a C.字符c D.非法的常量 9.以下选项中,正确的字符常量是()。 A.”F”B.’\\’’C.’W’D.’’ 10.下列变量定义中合法的是 A.short _a=; B.double b=1+; C.long do=0xfdaL; D.float 2_and=1-e-3; 11.为了避免嵌套的if-else语句的二义性,C语言规定else总是与()组成配对关系。 A.缩排位置相同的if B.在其之前未配对的if C.在其之前未配对的最近的if D.同一行上的if 12.下列运算符中优先级最高的是()。 A.< B.&& C.+ D.!= 13.判断char型变量s是否为小写字母的正确表达式是()。 A.’a’ <= s<=’z’B.(s>=’a’) & (s<=’z’) C.(s>=’a’) && (s<=’z’) D.(’a’<=s) and (’z’>=s)

C语言期末考试题库(第一章 c语言基

一、单项选择 1.算术运算符,赋值运算符和关系运算符的运算优先级按从高到低的顺序依次为(). A、关系运算,赋值运算,算术运算 B、算术运算,关系运算,赋值运算 C、算术运算,赋值运算,关系运算 D、关系运算,算术运算,赋值运算 答案:B 2.下述正确的C语言常量是:(). A、E2 B、3e-3 C、1.5E2.5 D、5.0E 答案:B 3.使用共用体变量,不可以(). A、进行动态管理 B、节省存储空间 C、同时访问所有成员 D、简化程序设计 答案:C 4.为表示关系x>=y>=z,应使用C语言表达式为:()

A、(x>=y)&(y>=z) B、(x>=y>=z) C、(x>=y)&&(y>=z) D、(x>=y)AND(y>=z) 答案:C 5.以下程序的输出结果是(). main() {char str[]="ABCD",*p=str;printf("%s\n",p);} A、68 B、ABCD C、不确定的值 D、字符D的地址 答案:B 6.char a[10];不能将字符串"abc"存储在数组中的是(). A、a="abc"; B、a[0]=0;strcat(a,"abc"); C、int i;for(i=0;i<3;i++)a[i]=i+97;a[i]=0; D、strcpy(a,"abc"); 答案:A 7.fscanf函数的正确调用形式是(). A、fscanf(文件指针,格式字符串,输入表列);

B、fscanf(格式字符串,文件指针,输出表列); C、fscanf(fp,格式字符串,输出表列); D、fscanf(格式字符串,输出表列,fp); 答案:A 8.下列数组说明中正确的是(). A、int array[][]={1,2,3,4,5,6,7,8,9,10}; B、int array[][][5]={1,2,3,4,5,6,7,8,9,10}; C、int array[][4]={1,2,3,4,5,6,7,8,9,10}; D、int array[3][]={1,2,3,4,5,6,7,8,9,10}; 答案:C 9.以下选项中,与k=n++完全等价的表达式是(). A、n=n+1,k=n B、k+=n+1 C、k=++n D、k=n,n=n+1 答案:D 10.针对下列程序段回答问题(). for(t=1;t<=100;t++) { scanf("%d",&x); if(x<0)continue;

大学c语言考试题库含答案

================================================== 题号:1482 执行以下程序段后,输出结果和a的值是()。int a=10; printf("%d",a++); A、11 和10 B、11 和11 C、10 和11 D、10 和10 答案: C 题号:2100 已知字符'A'的ASCⅡ代码值是65,字符变量c1的值是'A',c2的值是'D'.执行语句printf("%d,%d",c1,c2-2);后,输出结果是 A、65,66 B、A,B C、65,68 D、A,68 答案: A 题号:5055 相同结构体类型的变量之间,可以()。 A、比较大小 B、地址相同 C、赋值 D、相加 答案: C 题号:3217 int a[10];合法的数组元素的最小下标值为()。 A、1 B、0 C、10 D、9 答案: B

能正确表示逻辑关系:" a≥10或a≤0 "的C语言表达式是 A、a>=0 | a<=10 B、a>=10 or a<=0 C、a>=10 && a<=0 D、a>=10 || a<=0 答案: D 题号:157 main() {int x=1,a=0,b=0; switch (x) { case 0: b++; case 1: a++; case 2: a++;b++;} printf("a=%d,b=%d",a,b); }该程序的输出结果是( ) A、2,2 B、2,1 C、1,1 D、1,0 答案: B 题号:4784 设变量a是整型,f是实型,i是双精度型,则表达式10+'a'+i*f值的 数据类型为()。 A、不确定 B、double C、int D、float 答案: B 题号:1647 以下程序中,while循环的循环次数是______ main() { int i=0;

C语言试题库(完整版)

C语言试题库 一、单项选择 第一章 C语言概述 (1)一个C程序的执行是从 A、本程序的MAIN函数开始,到MAIN 函数结束。 B、本程序文件的第一个函数开始,到本程序文件的最后一个函数结束。 C、本程序的MAIN函数开始,到本程序的最后一个函数结束。 D、本程序文件的第一个函数开始,到本程序的MAIN函数结束。(2)以下叙述正确的是 A、在C程序中,MAIN函数必须位于程序的最前面。 B、 C程序的每行中只能写一条语句。 C、 C语言本身没有输入输出语句。 D、在对一个C程序进行编译的过程中,可发现注释中的拼写错误。(3) C语言规定,在一个源程序中,MAIN主函数的位置是在: A、必须在最前面。 B、必须在系统调用的库函数的后面 C、可以在任意位置。

D、必须在最后面 (4)一个C程序是由: A、一个主程序和若干子程序组成 B、函数组成 C、若干过程组成 D、若干子程序组成 (5)以下叙述不正确的是: A、一个C源程序可由一个或多个函数组成 B、一个C源程序必须包含一个MAIN函数 C、 C程序的基本组成单位是函数 D、在C程序中,注释说明只能位于一条语句的后面 第二章数据类型、运算符与表达式 (1)若x, i, j, k都是int型变量,则计算下面表达式后,x的值为x=( i=4, j=16, k=32) A、4 B、16 C、32

D、52 (2)下列四组选项中,均不是C语言键字的选项是 A、define , IF, type B、getc, char, printf C、include, scanf, case E、 if, struct, type (3)下面四个选项中,均是不合法的用户标识符的选项是A、A,P_0,do B、float,1a0, _A C、b-a, goto, int D、_123, temp, INT (4)若有代数式3ae/bc,则正确的C语言表达式是A、a/b/c*e*3 B、3*a*e/bc C、3*a*e/b*c D、a*e/c/b*3 (5)已知各变量的类型说明如下:

c语言期中考试试题及答案

《C语言程序设计》期中考试试卷 课程编号:03402513试卷类型:A卷考试形式:笔试考试日期: 注意事项:1.请将试卷最后一页的答题纸撕下,将答案填写在其中;2.交卷时请确认答题纸是否按要求写好姓名等信息并与试题一起上交;3.不准携带任何书籍、资料、纸张等。4.草稿纸用试卷的背面。 一、单项选择题(1空1分,共20分) 1、C语言程序的基本结构是(【1】) 。 【1】 A) 函数 B) 语句 C) 字符 D) 程序行 2、一个C程序的执行是(【2】) 。 【2】A) 从本程序的主函数开始,到本程序的主函数结束 B)从本程序的第一个函数开始,到本程序的最后一个函数结束 C) 从本程序的主函数开始,到本程序的最后一个函数结束 D)从本程序的第一个函数开始,到本程序的主函数结束 3、下列四个叙述中,错误的是(【3】) 。 【3】 A) 一个C源程序必须有且只能有一个主函数 B) 一个C源程序可以含一个或多个子函数 C) 在C源程序中注释说明必须位于语句之后 D) C源程序的基本结构是函数 4、下面不属于C语言保留字的是(【4】) 。 【4】 A) short B) ELSE C) extern D) for 5、下列四个叙述中,正确的是(【5】) 。 【5】 A) 库函数也是C语言本身的组成部分 B) C语言中的输入输出操作是由相应语句完成的 C) 库函数是C编译系统提供的功能函数 D) 标题文件(头文件)可以在程序的函数内部调用 6、下列四组数据类型中,C语言允许的一组是(【6】)。 【6】 A) 整型、实型、逻辑型 B) 整型、实型、字符型 C) 整型、双精度型、布尔型 D) 整型、实型、复型 7、在C语言中不同数据类型的的长度是(【7】)。 【7】 A) 固定的 B) 由用户自己定义的 C) 任意的 D) 与机器字长有关

C语言期末考试试题

C语言试题1 一填空题(15分) 1.设x的值为15,n的值为2,则表达式x%=(n+=3)运算后,x的值为()。 2.设int a=7,b=9,t;执行完表达式t=(a>b)?a:b后,t的值是()。 3.下面程序段的输出结果是()。 int a=1234; a=a&0377; printf(“%d %o\n”,a,a); 4.a数组定义如下,按照内存排列顺序,a数组中的所有元素是()。 char a[3]; 5.设有以下宏定义,则执行赋值语句a=PP*20;(a为int型变量)后,a的值是()。 #define PR 80 #define PP PR+403 6.在C程序中,可以通过三种运算方式为指针变量赋地址值,它们是:()、()和()。7.在C文件中,数据存在的两种代码形式是()和()。 8.C语言中调用()函数打开文件,调用()函数关闭文件,调用()函数可实现文件的随机读写。 9.若有int a[3]={10,12,30};则a+1是()的地址,*(a+2)=()。 二判断对错(5分,对的划“√”,错的划“×” 1.在Turbo C中,整型数据在内存中占2个字节。() 2.表达式1/4+2.75的值是3。() 3.结构体类型只有一种。() 4.函数若无返回值,则它一定无形参。() 5.C语言只能处理文本文件和二进制文件。() 三选择题(20分) 1.设int a=12; 表达式a+=a-=a*=a的值是()。 A 12 B 144 C 0 D 132 2.以下程序的输出结果是()。 main( ) { int a=011; printf(“%d\n”,++a); } A 12 B 11 C 10 D 9 3.以下程序的输出结果是()。 #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=140 C d=280 D d=80 4.下面的选项中正确的赋值语句是(char a[5],*p=a;)()。 A p=“abcd”; B a=“abcd”; C *p=“abcd”; D *a=“abcd”; 5.若k为整形,则while循环执行()次。 k=2; while(k==0) printf(“%d”,k); k--; printf(“\n”); A 10 B 9 C 0 D 1

C语言题库

C语言题库 1.若要用fopen函数打开一个新的二进制文件,该文件要既能读也能写, 则文件方式字符串应是(D)。 A、"rb+" B、"ab++" C、"ab" D、"wb+" 2.设有如下定义: struct sk {int a; float b;} data,*p; 若要使p指向data中的a域,正确的赋值语句是(C)。 A、p=(struct sk*) data.a; B、*p=data.a; C、p=&data.a; D、p=&data,a; 3.对结构体类型的变量的成员的访问,无论数据类型如何都可使用 的运算符是(B)。 A、& B、. C、* D、-> 4.下列关于指针定义的描述,错误的是(A)。 A、指针是一种变量,该变量用来存放某个变量的值 B、指针是一种变量,该变量用来存放某个变量的地址值 C、指针变量的类型与它所指向的变量类型一致 D、指针变量的命名规则与标识符相同 5.设有如下的程序段: char str[ ]="Hello"; char *ptr; ptr=str; 执行完上面的程序段后,*(ptr+5)的值为(D ). A、不确定的值 B、'o'的地址 C、'o' D、'\0' 6.若有以下的定义:int t[3][2];能正确表示t数组元素地址的表达式是(D)。 A、&t[1] B、t[3] C、&t[3][2] D、t[2] 7.下列说法中正确的是(B ). A、函数调用不占运行时间,只占编译时间. B、宏替换不占运行时间,只占编译时间. C、有参数的宏定义,就是函数. D、在定义宏时,宏名与带参数的括弧之间可以加空格. 8.以下叙述中正确的是(C)。

大一C语言期末考试试题

6.以下程序的输出结果为(D)。 main( ) { char c; int i; for(i=65;i<68;i++) { c=i+32; switch(c) { case ‘a’:printf("%c,",c);break; case ‘b’:case ‘e’:printf("ok,"); default: printf("end"); } } } A a,ok,end B a,ok,endend C a,ok,end,end D a,ok,ok 9.以下程序的输出结果为(B)。 #define A 3 #define B(a) (A+1)*a main() { int x; x=3*A+B(7); printf("x=%d\n",x); } A x=93 B x=37 C x=60 D x=90 三写出下列程序的运行结果(10分,每小题2分) 1.main( ) { char c1=‘A’,c2=‘\144’,c3=‘\x44’,c=0xf5,x=13,a; int i=0122,j=0xa4; printf(“c1=%c,c4=%c\tc5=%c\n”,c1,c2,c3); printf(“%d,%d\n”,i,j); i=-34; j=20; printf(“%d,%d,%d\n”,i%j,i&j<<2,sizeof(j)); printf(“c=%d\n”,c|x); a=c^x<<2;

printf(“a=%d\n”,a); } 2.main() { int x,y=1,z=10; if(y!=0) x=5; printf(“x=%d\t”,x); x=1; if(z<0) if(y>0) x=3; else x=5; printf(“x=%d\n”,x); if(z=y<0) x=3; else if(y==0) x=5; else x=7; printf(“x=%d\t”,x); printf(“z=%d\n”,z); } 3.main( ) { char s[20]=“I like it.”,t[20]=“Are you?”,c[20]; int i=0; while(s[++i]!=‘\0’) t[i]=s[i]; t[i]=0; printf(“string s:%s\n”,s); printf(“string t:%s\n”,t); } 4.int i=5; main( ) { int i=3; { int i=10; i++; printf(“%d\n”,i);

C语言期末考试题(含答案)

《C 语言程序设计》期末试卷 一、单项选择题(10x2’=20’) 1、以下叙述正确的是() A )C 语言的源程序不必通过编译就可以直接运行。 B ) C 语言中的每条可执行语句最终都将被转换成二进制的机器指令。 C )C 语言源程序经编译形成的二进制代码可以直接运行。 D )C 语言中的函数不可以单独进行编译。 2、一个C 语言的源程序中() A )必须有一个主函数 B )可能有多个主函数 C )必须有除主函数外其它函数 D )可以没有主函数 3、以下不能定义为用户标识符的是() A )scanf B )Void C )_3com D )int 4、若以下选项中的变量已正确定义,则正确的赋值语句是() A )x1=26.8%3; B )1+2=x2; C )x3=0x12; D )x4=1+2=3; 5、设有定义:floata=2,b=4,h=3;以下C 语言表达式中与代数式h b a *)(2 1 的计算结果不.相符的是() A )(a+b)*h/2 B )(1/2)*(a+b)*h C )(a+b)*h*1/2 D )h/2*(a+b) 6、C 语言中用于结构化程序设计的3种基本结构是() A )顺序结构、选择结构、循环结构 B )if 、switch 、break C )for 、while 、do-while D )if 、for 、continue 7.在while (!x )语句中的!x 与下面条件表达式等价的是() A)x!=0B)x==1C)x!=1D)x==0

8、有以下程序: #include voidmain(){ inti=1,j=1,k=2; if((j++||k++)&&i++) printf(“%d,%d,%d\n”,i,j,k);} 执行后的输出结果是() A)1,1,2 B)2,2,1 C)2,2,2 D)2,2,3 9、有以下程序: #include voidmain(){ inti,s=0; for(i=1;i<10;i+=2) s+=i+1; printf(“%d\n”,s);} 程序执行后的输出结果是() A)自然数1~9的累加和B)自然数1~10的累加和 C)自然数1~9中奇数之和D)自然数1~10中偶数之和 10、有以下函数定义: voidfun(intn,doublex){……} 若以下选项中的变量都已经正确定义并赋值,则对函数fun的正确调用语句是()A)fun(inty,doublem); B)k=fun(10,12.5); C)fun(x,n);D)voidfun(n,x); 二、填空题(10x2’=20’) 11、C语言描述“x和y都大于或等于z”的表达式是:。 12、函数定义时涉及的基本要素是:、、。

(完整版)C语言考试题库之判断题(2)

三、判断题(10道小题,共10分) 1、C 语言具有简洁明了的特点。(1分) 正确 2、预处理命令的前面必须加一个“#”号。(1分) 正确 3、标准格式输入函数scanf()可以从键盘上接收不同数据类型的数据项。(1分) 正确 4、在if语句的三种形式中,如果要想在满足条件时执行一组(多个)语句,则必须把这一组语句用{}括起来组成一个复合语句。(1 分) 正确 5、continue 不是结束本次循环,而是终止整个循环的执行。(1分) 错误 6、在对数组全部元素赋初值时,不可以省略行数,但能省略列数(1分) 错误 7、.函数的实参传递到形参有两种方式值传递和地址传递(1分) 正确 8、直接访问就是直接利用变量的地址进行存取直接访问(1分) 正确 9、共用体变量可以作结构体的成员,结构体变量也可以作共用体的成员。(1分) 正确 10、文件指针和位置指针都是随着文件的读写操作在不断改变。(1分) 错误 11、C 语言标准格式输入函数scanf() 的参数表中要使用变量的地址值。(1分) 正确 12、浮点型常量的指数表示中,e 是可以省略的。(1分) 错误 13、任何表达式语句都是表达式加分号组成的。(1分) 正确 14、在switch语句中,每一个的case常量表达式的值可以相同。(1分) 错误 15、do-while循环的while后的分号可以省略。(1分) 错误 16、用字符串方式赋值比用字符逐个赋值要多占一个字节,用于存放字符串结束标志'\0'。正确 17、C语言函数返回类型的默认定义类型是void(1分) 错误 18、可以用一个指针变量指向一个函数,然后通过该指针变量调用此函数(1分) 正确 19、枚举类型中的元素都具有一个整型值。(1分) 正确 20、C 语言是一种具有某些低级语言特征的高级语言。(1分) 正确 21、case语句后如没有break,顺序向下执行。(1分)正确

大学大一C语言程序设计期末考试试卷和答案

四川师范大学计算机科学学院 2012~2013学年度第二学期期末考试 C 语言程序设计试卷 试卷A 答卷说明: 1、 本试卷共6页,答题纸3页,4个大题,35个小题,满分100 分,120分钟完卷。 2、 闭卷考试,所有的答案都必须写在答题纸上,判卷以答题纸上 答案为准。 3、 本试卷适用于2011级1、2、3班。 一、 单项选择题(在每小题的四个备选答案中,选出一个正确答案,并将正确答案的 序号填在题干的括号内。每小题1分,共20分) 1、 在C 语言中,下列标识符中合法的是( ) A). -int B). in1_3 C). A_B!D D). const 2、 不属于C 语言基本数据类型的是( ) A). int B). union C). char D). unsigned 3、 下面是对宏定义的描述。不正确的是( ) A). 宏不存在类型问题,宏名无类型,它的参数也无类型 B). 宏替换不占用运行时间 C). 宏替换只是字符串的简单替代 D). 宏替换时先检查类型,类型一致时才可以替换 4、 C 语言中,″\\xfds ″在内存中占用的字节数是( ) __________________学院__________级___________班 姓名_______________ 学号_______________ ………………………………(密)………………………………(封)………………………………(线)……………………………… 密 封 线 内 答 题 无 效

A).3 B).4C).5D).6 5、设int x;则执行printf(″%x\n″,~x^x);的结果是() A). ffffffff B). ff C).0D). 1 6、对于while语句,错误的说法是() A).用条件控制循环体的执行次数B).循环体至少要执行一次 C).循环体有可能一次也不执行D).循环体中可以包含若干条语句 7、执行下列语句后输出的结果是() int a=8,b=7,c=6; if(ac){a=c;c=b;} printf("%d,%d,%d\n",a,b,c); A).6,7,7B).6,7,8C).8,7,6D).8,7,8 8、设int a=9,b=20;则printf(″%d,%d\n″,a--,--b);的输出结果是() A).9,19B).9,20C).10,19D).10,20 9、设static char x[ ]=″12345″,y[ ]={′1′,′2′,′3′,′4′,′5′,′\0′};那么() A).x数组的长度等于y数组的长度B).x数组的长度大于y数组的长度 C).x数组的长度少于y数组的长度D).x数组与y数组的存储区域相同 10、设int i,x[3][3]={1,2,3,4,5,6,7,8,9};则下面语句的输出结果是() for(i=0;i<3;i++) printf(″%d″,x[i][2-i]); A).147B).159C).357D).369 11、执行完下列语句后,n的值是() int n; for (n=0 ; n<100 ; n=2*n+1); A).125B).126 C).127D).128 12、有以下语句:int a=6;a+=a-=a*a;printf(“%d”,a);输出结果() A).–132 B).–60 C). -24 D). 0 13、为了连接两个字符串s1与s2,应当使用() A). strcat( s1,s2 ) B). strcpy( s1, s2 ) C). strlen( s1, s2 ) D). strcmp( s1, s2 ) 14、设int a,*p;则语句p=&a;中的运算符“&”的含义是() A).位与运算B).逻辑与运算C).取指针内容D).取变量地址 15、下面输出的结果为() i nt a=13, b=64; printf(“%d\n”, !a || (b>>3) );

2019年C语言期末考试题与答案

1、给定n个数据, 求最小值出现的位置(如果最小值出现多次,求出第一次出现的位置即可)。 最大值第三行i<=n五行k+1 2、编写程序求无理数e的值并输出。计算公式为: e=1+1/1!+1/2!+1/3!+......+1/n! 当1/n!<0.000001时e=2.718282。 3、求一批数中最大值和最小值的积。 4、某一正数的值保留2位小数,对第三位进行四舍 五入。 5、从键盘上输入任意实数x,求出其所对应的函数值。 z=(x-4)的二次幂(x>4) z=x的八次幂(x>-4) z=z=4/(x*(x+1))(x>-10) z=|x|+20(其他)6、求出N×M整型数组的最大元素及其所在的行坐标 及列坐标(如果最大元素不唯一,选择位置在最前面 的一个)。 例如:输入的数组为: 1 2 3 4 1 5 6 12 18 9 10 11 2 求出的最大数为18,行坐标为2,列坐标为1。 7、求一个n位自然数的各位数字的积。(n 是小于10的自然数) 8、计算n门课程的平均值,计算结果作为函数值返回。例如:若有5门课程的成绩是:92,76,69,58,88,则函数的值为76.599998。 9、求一批数中小于平均值的数的个数。

10、编写函数判断一个整数m 的各位数字之和能否被7整除, 可以被7整除则返回1,否则返回0。调用该函数找出 100~200之间满足条件的所有数。 11、请编一个函数void fun(int tt[M][N],int pp[N]), tt 指向一个M 行N 列的二维数组,求出二维数组每列 中最大元素,并依次放入pp 所指一维数组中。二维 数组中的数已在主函数中赋予。 12、编写函数fun 用比较法对主程序中用户输入的具有10 个数据的数组a 按由大到小排序,并在主程序中输出 排序结果。 13、编写main 程序调用函数fact 求解从m 个元素选n 个元 素的组合数的个数。计算公式是:组合数=m!/(n!.(m-n)!)。 要求:m 不能小于n ,否则应有容错处理。 说明:函数fact(x)的功能是求x!。 14、找出一批正整数中的最大的偶数。 15、实现两个整数的交换。 例如:给a 和b 分别输入:60和65,输入为: a=65 b=60 16、将字符串中的小写字母转换为对应的大写字母, 其它字符不变。 17、求一个四位数的各位数字的立方和。 18、求一组数中大于平均值的数的个数。 例如:给定的一组数为1,3,6,9,4,23,35,67,12,88时,函 数值为3。 19、对任意输入的 x ,用下式计算并输出 y 的值。 5 x<10 y= 0 x=10 -5 x>10

C语言程序的设计试题库完整

一、选择题(每题1分,共20分) 1.C语言程序从main()函数开始执行,所以这个函数要写在(D )。 A.程序文件的开始B.程序文件的最后 C.它所调用的函数的前面D.程序文件的任何位置 2.下列方法中错误的是(D )。 A.主函数可以分为两个部分:主函数说明部分和主函数体。 B.主函数可以调用任何非主函数的其它函数。 C.任何非主函数可以调用其它任何非主函数。 D.程序可以从任何非主函数开始执行。 3.下列正确的标识符是(C )。 A.-a1 B.a[i] C.a2_i D.int t 4.C语言中的简单数据类型包括(D )。 A.整型、实型、逻辑型B.整型、实型、逻辑型、字符型 C.整型、字符型、逻辑型D.整型、实型、字符型 5.下列可以正确表示字符型常量的是(A )。 A.’\t’B.”a”C.”\n”D.297 6.在C语言中,字符型数据所占的内存空间是(C )。 A.2个字节B.4字节C.1字节D.由用户自定义 7.若int类型数据占2个字节,则unsigned int类型数据的取值范围是(B )。 A.0~255 B.0~65535 C.-32768~32767 D.-256~255 8.若有以下类型说明语句:char a;int b; float c; double d; 则表达式a*b+d-c的结果类型为(D )。 A.float B.char C.int D.double 9.下列正确的预编译命令是(D )。 A.define PI 3.14159 B.#define P(a,b)=strcpy(a,b) C.#define stdio.h D.#define PI 3.14159 10.为表示逻辑表达式7979 )&&( X<90 ) B.( X>79 )!=( X<90 ) C.7979 )||( X<90 ) 11.设有语句“int a=2,b=3,c=-2,d=2;”,则逻辑表达式“a>0&&b&&c<0&&d>0”的值是(A )。 A.1 B.0 C.-1 D.出错

大一c语言期末考试题

大一c语言期末考试题 C语言期末考试试题附答案 一选择题(7分,每小题0.5分) 1.C语言源程序的基本单位是()。 A 过程 B 函数 C 子程序 D 标识符 2.下列程序的输出结果是()。 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)的值是()。 A 7 B 8 C 9 D 2 4.设a为int型变量,执行下列赋值语句后,a的取值分别是()。 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.设有如下程序段,下面描述中正确的是()。 int k=10; while(k=0) k=k-1; A 循环执行一次B循环是无限循环C循环体语句一次也不执行D循环体语句执行一次 6.以下程序的输出结果为()。 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语言程序中,以下说法正确的是()。 A函数的定义可以嵌套,但函数的调用不可以嵌套 B函数的定义不可以嵌套,但函数的调用可以嵌套 C函数的定义和函数的调用都不可以嵌套 D函数的定义和函数的调用都可以嵌套 8.以下函数调用语句中含有()个实参。 func((e1,e2),(e3,e4,e5)); A 2 B 3 C 5 D 语法错误 9.以下程序的输出结果为()。 #define ADD(x) x*x main( ) { int a=4,b=6,c=7,d=ADD(a+b)*c;

大一上学期C语言期末复习总结和模拟试题带答案

易错点 C语言中易犯的错误 对初学C语言的人来说,经常会出一些连自己都不知道错在哪里的错误.看着有错的程序,不知该如何改起,一些C编程时常犯的错误,写给各位学员以供参考. ******************************** ******************************** ************************ 1.书写标识符时,忽略了大小写字母的区别. main() { int a=5; printf("%d",A); } 编译程序把a和A认为是两个不同的变量名,而显示出错信息. C认为大写字母和小写字母是两个不同的字符.习惯上,符号常量 名用大写,变量名用小写表示,以增加可读性. ******************************** ******************************** ************************ 2.忽略了变量的类型,进行了不合法的运算. main() { float a,b; printf("%d",a%b); } %是求余运算,得到a/b的整余数.整型变量a和b可以进行求余运算,而实型变量则不允许进行"求余"运算. ******************************** ******************************** ************************ 3.将字符常量与字符串常量混淆. char c; c="a"; 在这里就混淆了字符常量与字符串常量,字符常量是由一对单 引号括起来的单个字符,字符串常量是一对双引号括起来的字符序 列.C规定以"\"作字符串结束标志,它是由系统自动加上的,所 以字符串"a"实际上包含两个字符:'a'和'\',而把它赋给一 个字符变量是不行的. ******************************** ******************************** ************************ 4.忽略了"="与"=="的区别. 在许多高级语言中,用"="符号作为关系运算符"等于". 如在BASIC程序中可以写 if (a=3) then … 但C语言中,"="是赋值运算符,"=="是关系运算符.如: if (a==3) a=b; 前者是进行比较,a是否和3相等,后

大学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题为相同类型题 考点:标识符的命名规则 (1)只能由字母、数字、下划线构成 (2)数字不能作为标识符的开头 (3)关键字不能作为标识符 选项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) 8、下列四组字符串中都可以用作C语言程序中的标识符的是(A)。 A、print _3d db8 aBc B、I\am one_half start$it 3pai

大学C语言考试题库及答案

精选考试类应用文档,如果您需要使用本文档,请点击下载,另外祝您生活愉快,工作顺利,万事如意! 大学C语言考试题库及答案 姓名成绩 温馨提示:同学们,经过培训学习,你一定积累了很多知识,现在请认真、仔细地完成这张试题库吧。加油! 一单项选择题库 1. 在C语言中,以 D 作为字符串结束标志 A)’\n’ B)’ ’ C) ’0’ D)’\0’ 2.下列数据中属于“字符串常量”的是( A )。 A.“a” B.{ABC} C.‘abc\0’ D.‘a’ 若干个字符构成字符串 在C语言中,用单引号标识字符;用双引号标识字符串 选项B,C,分别用{}和’’标识字符串 选项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 6.下列C语言用户标识符中合法的是(B )。 A)3ax B)x C)case D)-e2 E)union 7.下列四组选项中,正确的C语言标识符是(C )。 A)%x B)a+b C)a123 D)123 8、下列四组字符串中都可以用作C语言程序中的标识符的是(A )。 A、print _3d db8 aBc B、I\am one_half start$it 3pai C、str_1 Cpp pow while D、Pxq My->book line# His.age 9.C语言中的简单数据类型包括(D )。 A、整型、实型、逻辑型 B、整型、实型、逻辑型、字符型 C、整型、字符型、逻辑型 D、整型、实型、字符型 10.在C语言程序中,表达式5%2的结果是 C 。

相关文档
相关文档 最新文档