搜档网
当前位置:搜档网 › 编程填空题

编程填空题

编程填空题
编程填空题

全国计算机等级考试C语言――填空题

1.给定程序中,函数FUN的功能是:计算出带有头接点的单向链表中各结点数据域之和作为函数值返回。#include

#include

#define N 8

typedef struct list

{ int data;

struct list *next;

} SLIST;

SLIST *creatlist(int *);

void outlist(SLIST *);

int fun( SLIST *h)

{ SLIST *p; int s=0;

p=h->next;

while(p)

{

/**********************************found*********************************/

s+= p->___1___; data

/**********************************found*********************************/

p=p->___2___; next

}

return s;}

main( )

{ SLIST *head;

int a[N]={12,87,45,32,91,16,20,48};

head=creatlist(a); outlist(head);

/**********************************found*********************************/ printf("\nsum=%d\n", fun(___3___)); head

}

SLIST *creatlist(int a[ ])

{ SLIST *h,*p,*q; int i;

h=p=(SLIST *)malloc(sizeof(SLIST));

for(i=0; i

{ q=(SLIST *)malloc(sizeof(SLIST));

q->data=a[i]; p->next=q; p=q;

}

p->next=0;

return h;

}

void outlist(SLIST *h)

{ SLIST *p;

p=h->next;

if (p==NULL) printf("The list is NULL!\n");

else

{ printf("\nHead ");

do

{ printf("->%d", p->data); p=p->next; }

while(p!=NULL);

printf("->End\n");

}

}

2.给定程序中,函数FUN的功能是:求出形参SS所指字符串数组中最长字符串的长度,其余字符串左边用字符*补齐,使其与最长的字符串等长。字符串数组中工有M个字符串,且串长

#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;

if(len>n) {

/**********************************found*********************************/ n=len; k=___1___; i

}

}

for(i=0; i

if (i!=k)

{ m=n;

len=strlen(ss[i]);

/**********************************found*********************************/ for(j=___2___; j>=0; j--) len

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

for(j=0; j

/**********************************found*********************************/ ss[i][j]=____3____; '*'

}

}

main( )

{char s[M][N]={"shanghai","guangzhou","beijing","tianjing","cchongqing"};

int i;

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

for(i=0; i

printf("\n");

fun(ss);

printf("\nThe result:\n");

for(i=0; i

}

3.人员记录由编号和出生年,月,日组成,N名人员的数据已在主函数中存入结构体数组std且编号唯一。函数fun 的功能是;找出指定编号人员的数据,作为函数值返回,有主函数输出,若指定编号不存在,返回数据中的编号为空串。

#include

#include

#define N 8

typedef struct

{ char num[10];

int year,month,day ;

}STU;

/**********************************found*********************************/

___1___fun(STU *std, char *num) STU

{ int i; STU a={"",9999,99,99};

for (i=0; i

/**********************************found*********************************/ if( strcmp(____2_____,num)==0 ) std[i].num

/**********************************found*********************************/ return (___3____); std[i] return a;

}

main( )

{STU std[N]={ {"111111",1984,2,15},{"222222",1983,9,21},{"333333",1984,9,1},

{"444444",1983,7,15},{"555555",1984,9,28},{"666666",1983,11,15},

{"777777",1983,6,22},{"888888",1984,8,19}};

STU p; char n[10]="666666";

p=fun(std,n);

if(p.num[0]==0)

printf("\nNot found !\n");

else

{ printf("\nSucceed !\n ");

printf("%s %d-%d-%d\n",p.num,p.year,p.month,p.day);

}

}

4.给定程序中已建立一个带有头结点的单向链表,链表中的各结点按数据域递增有序链接。函数fun 的功能:删除链表中数据域值相同的结点,使之保留一个。

#include

#include

#define N 8

typedef struct list

{ int data;

struct list *next;

} SLIST;

void fun( SLIST *h)

{ SLIST *p, *q;

p=h->next;

if (p!=NULL)

{ q=p->next;

while(q!=NULL)

{ if (p->data==q->data)

{ p->next=q->next;

/**********************************found*********************************/ free(___1___); q

/**********************************found*********************************/ q=p->___2___; next }

else

{ p=q;

/**********************************found*********************************/ q=q->___3___; next }

}

}

}

SLIST *creatlist(int *a)

{ SLIST *h,*p,*q; int i;

h=p=(SLIST *)malloc(sizeof(SLIST));

for(i=0; i

{ q=(SLIST *)malloc(sizeof(SLIST));

q->data=a[i]; p->next=q; p=q;

}

p->next=0;

return h;

}

void outlist(SLIST *h)

{ SLIST *p;

p=h->next;

if (p==NULL) printf("\nThe list is NULL!\n");

else

{ printf("\nHead");

do { printf("->%d",p->data); p=p->next; } while(p!=NULL);

printf("->End\n");

}

}

main( )

{ SLIST *head; int a[N]={1,2,2,3,4,4,4,5};

head=creatlist(a);

printf("\nThe list before deleting :\n"); outlist(head);

fun(head);

printf("\nThe list after deleting :\n"); outlist(head);

5.函数fun 的功能是进行数字字符转换。若形参ch中是数字字符'0 ~ 9',则'0'转换成'9', '1'转换成'8', '2'转换成'7' … '9'转换成'0';若是其他字符则保持不变;并将转换后的结果作为函数值返回.

#include

/**********************************found*********************************/

___1___fun(char ch) char

{

/**********************************found*********************************/ if (ch>='0' &&___2____) ch<='9'

/**********************************found*********************************/ return '9'- (ch-___3___); '0'

return ch ;

}

main( )

{ char c1, c2;

printf("\nThe result :\n");

c1='2'; c2 = fun(c1);

printf("c1=%c c2=%c\n", c1, c2);

c1='8'; c2 = fun(c1);

printf("c1=%c c2=%c\n", c1, c2);

c1='a'; c2 = fun(c1);

printf("c1=%c c2=%c\n", c1, c2);

}

6.给定程序中,函数fun的功能是:对形参ss所指字符串数组中的M字符串按长度由短到长进行排序。SS所指字符串数组中共有M个字符串,且串长

#include

#include

#define M 5

#define N 20

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

{ int i, j, k, n[M]; char t[N];

for(i=0; i

for(i=0; i

{ k=i;

/**********************************found*********************************/

for(j=___1___; j

/**********************************found*********************************/

if(n[k]>n[j]) k=___2___; j

if(k!=i)

{ strcpy(t,ss[i]);

strcpy(ss[i],ss[k]);

/**********************************found*********************************/

strcpy(ss[k],___3___); t

n[k]=n[i];

}

}

}

main( )

{ char s[M][N]={"shanghai","guangzhou","beijing","tianjing","cchongqing"};

int i;

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

for(i=0; i

printf("\n");

fun(ss);

printf("\nThe result :\n");

for(i=0; i

}

7.函数FUN的功能是:从三个形参a,b,c中找出中间的那个数,作为函数值返回。例如,当a=3,b=5,c=4时,中数为4。

#include

int fun(int a, int b, int c)

{ int t;

/**********************************found*********************************/ t = (a>b) ? (b>c? b :(a>c?c:___1___)) : ((a>c)?___2___ : ((b>c)?c:___3___));

return t;

} 1. a 2. a 3.b

main( )

{ int a1=3, a2=5, a3=4, r;

r = fun(a1, a2, a3);

printf("\nThe middle number is : %d\n", r);

}

8.给定程序中,函数FUN的功能是:统计出带有头结点的单向链表中接点的个数,存放在形参N所指的存储单元中。

#include

#include

#define N 8

typedef struct list

{ int data;

struct list *next;

} SLIST;

SLIST *creatlist(int *a);

void outlist(SLIST *);

void fun( SLIST *h, int *n)

{ SLIST *p;

/**********************************found*********************************/ *n=____1_____; 0

p=h->next;

while(p)

{ (*n)++;

/**********************************found*********************************/ p=____2____; p->next }

}

main( )

{ SLIST *head;

int a[N]={12,87,45,32,91,16,20,48}, num;

head=creatlist(a); outlist(head);

/**********************************found*********************************/ fun(head,____3____); &num printf("\nnumber=%d\n",num);

}

SLIST *creatlist(int a[ ])

{ SLIST *h,*p,*q; int i;

h=p=(SLIST *)malloc(sizeof(SLIST));

for(i=0; i

{ q=(SLIST *)malloc(sizeof(SLIST));

q->data=a[i]; p->next=q; p=q;

}

p->next=0;

return h;

}

void outlist(SLIST *h)

{ SLIST *p;

p=h->next;

if (p==NULL) printf("The list is NULL!\n");

else

{ printf("\nHead ");

do

{ printf("->%d",p->data); p=p->next; }

while(p!=NULL);

printf("->End\n");}}

9.给定程序的功能是:调用函数FUN将指定源文件中的内容复制到指定的目标文件中,复制成功时函数返回值为1,失败时返回值为0。在复制的过程中,把复制的内容输出到终端屏幕。主函数中源文件名房子变量sfname中,目标文件名放在变量tfname中。

#include

#include

int fun(char *source, char *target)

{ FILE *fs,*ft; char ch;

/**********************************found*********************************/ if((fs=fopen(source,___1___))==NULL) "r"

return 0;

if((ft=fopen(target, "w"))==NULL)

return 0;

printf("\nThe data in file :\n");

ch=fgetc(fs);

/**********************************found*********************************/ while(!feof(___2___)) fs

{ putchar( ch );

/**********************************found*********************************/ fputc(ch,___3___); ft

ch=fgetc(fs);

}

fclose(fs); fclose(ft);

printf("\n\n");

return 1;

}

main( )

{ char sfname[20] ="myfile1",tfname[20]="myfile2";

FILE *myf; int i; char c;

myf=fopen(sfname,"w");

printf("\nThe original data :\n");

for(i=1; i<30; i++){ c='A'+rand( )%25;fprintf(myf,"%c",c); printf("%c",c); }

fclose(myf);printf("\n\n");

if (fun(sfname, tfname)) printf("Succeed!");

else printf("Fail!");

}

10.给定程序中,函数FUN的功能是:在形参S所指字符串中的每个数字字符之后插入一个*。例如,形参S所指字符串为:def35adh3kjsdf7.执行结果为:def3*5*adh3*kjsdf7*

#include

void fun(char *s)

{ int i, j, n;

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

/**********************************found*********************************/

if(s[i]>='0' ___1___ s[i]<='9') &&

{ n=0;

/**********************************found*********************************/ while(s[i+1+n]!=___2___) n++; '\0'

for(j=i+n+1; j>i; j--)

/**********************************found*********************************/ s[j+1]= ___3___; s[j]

s[j+1]='*';

i=i+1;

}

}

main( )

{ char s[80]="ba3a54cd23a";

printf("\nThe original string is : %s\n",s);

fun(s);

printf("\nThe result is : %s\n",s);

}

11.给定程序中,函数FUN的功能是:将形参STD所指结构体数组中年龄最大者的数据作为函数值返回,并将main函数输出。

#include

typedef struct

{ char name[10];

int age;

}STD;

STD fun(STD std[], int n)

{ STD max; int i;

/**********************************found*********************************/ max=____1____; std[0]

for(i=1; i

/**********************************found*********************************/ if(max.age<___2___) max=std[i]; std[i].age

return max;

}

main( )

{ STD std[5]={"aaa",17,"bbb",16,"ccc",18,"ddd",17,"eee",15 };

STD max;

max=fun(std,5);

printf("\nThe result: \n");

/**********************************found*********************************/ printf("\nName : %s, Age : %d\n",___3___ ,max.age); https://www.sodocs.net/doc/168234451.html,

}

12.给定程序中,函数fun 功能是:在带有头结点的单向链表中,查找数据域中为CH的结点,找到后通过函

数值返回该结点在链表中所处的顺序号;若不存在值为CH的结点,函数返回0值。

#include

#include

#define N 8

typedef struct list

{ int data;

struct list *next;

} SLIST;

SLIST *creatlist(char *);

void outlist(SLIST *);

int fun( SLIST *h, char ch)

{ SLIST *p; int n=0;

p=h->next;

/**********************************found*********************************/ while(p!=___1___) NULL { n++;

/**********************************found*********************************/ if (p->data==ch) return ___2___; n

else p=p->next;

}

return 0;

}

main( )

{ SLIST *head; int k; char ch;

char a[N]={'m','p','g','a','w','x','r','d'};

head=creatlist(a);

outlist(head);

printf("Enter a letter:");

scanf("%c",&ch);

/**********************************found*********************************/ k=fun(___3___); head,ch if (k==0) printf("\nNot found!\n");

else printf("The sequence number is : %d\n",k);

}

SLIST *creatlist(char *a)

{ SLIST *h,*p,*q; int i;

h=p=(SLIST *)malloc(sizeof(SLIST));

for(i=0; i

{ q=(SLIST *)malloc(sizeof(SLIST));

q->data=a[i]; p->next=q; p=q;

}

p->next=0;

return h;

}

void outlist(SLIST *h)

{ SLIST *p;

p=h->next;

if (p==NULL) printf("\nThe list is NULL!\n");

else

{ printf("\nHead");

do

{ printf("->%c",p->data); p=p->next; }

while(p!=NULL);

printf("->End\n");

}

}

13.给定程序的功能是:从键盘输入若干行文本(每行不超过80个字符),写到文件myfile4.txt 中,用-1作为字符串输入结素的标志。然后将文件的内容读出显示在屏幕上。文件的读写分别由自定义函数readText和writeText实现。

#include

#include

#include

void WriteText(FILE *);

void ReadText(FILE *);

main( )

{ FILE *fp;

if((fp=fopen("myfile4.txt","w"))==NULL)

{ printf(" open fail!!\n"); exit(0); }

WriteText(fp);

fclose(fp);

if((fp=fopen("myfile4.txt","r"))==NULL)

{ printf(" open fail!!\n"); exit(0); }

ReadText(fp);

fclose(fp);

}

/**********************************found*********************************/

void WriteText(FILE ___1___ ) *fw

{ char str[81];

printf("\nEnter string with -1 to end :\n");

gets(str);

while(strcmp(str,"-1")!=0) {

/**********************************found*********************************/ fputs(___2___,fw); fputs("\n",fw); str

gets(str);

}

}

void ReadText(FILE *fr)

{ char str[81];

printf("\nRead file and output to screen :\n");

fgets(str,81,fr);

while( !feof(fr) ) {

/**********************************found*********************************/ printf("%s",___3___); str

fgets(str,81,fr);

}

}

14.给定程序中,函数FUN的功能是:有N X N矩阵,根据给定的m(m<=N)值,将每个元素中的值均右移m 个位置,左边置为0。例如,N=3,m=2,有下列矩阵

1 2 3 0 0 1

4 5 6 程序执行结果为0 0 4

7 8 9 0 0 7

#include

#define N 4

void fun(int (*t)[N], int m)

{ int i, j;

/**********************************found*********************************/ for(i=0; i

{ for(j=N-1-m; j>=0; j--)

/**********************************found*********************************/

t[i][j+___2___ ]=t[i][j]; m

/**********************************found*********************************/ for(j=0; j<___3___; j++) m

t[i][j]=0;

}

}

main( )

{ int t[][N]={21,12,13,24,25,16,47,38,29,11,32,54,42,21,33,10}, i, j, m;

printf("\nThe original array:\n");

for(i=0; i

{ for(j=0; j

printf("%2d ",t[i][j]);

printf("\n");

}

printf("Input m (m<=%d): ",N);scanf("%d",&m);

fun(t,m);

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

for(i=0; i

{ for(j=0; j

printf("%2d ",t[i][j]);

printf("\n");

}

}

15.函数FUN的功能是; 把形参a所指数组中的最大值放在a[0]中,接着求出a所指数组中的最小值放在a[1]中;再把a所指数组元素中的次大值a[2]中,把a所指数组的数据最初排列为:1,4,2,3,9,6,5,8,7,则按规则移动后,数据排列为:9,1,8,2,7,3,6,4,5。形参n中存放a所指数组中数据的个数。

#include

#define N 9

/**********************************found*********************************/

void fun(int ___1___ , int n) *a

{ int i, j, max, min, px, pn, t;

/**********************************found*********************************/ for (i=0; i

{ max = min = a[i];

px = pn = i;

/**********************************found*********************************/ for (j=___3___; j

{ if (max < a[j])

{ max = a[j]; px = j; }

if (min > a[j])

{ min = a[j]; pn = j; }

}

if (px != i)

{ t = a[i]; a[i] = max; a[px] = t;

if (pn == i) pn= px;

}

if (pn != i+1)

{ t = a[i+1]; a[i+1] = min; a[pn] = t; }

}

}

main( )

{ int b[N]={1,4,2,3,9,6,5,8,7}, i;

printf("\nThe original data :\n");

for (i=0; i

printf("\n");

fun(b, N);

printf("\nThe data after moving :\n");

for (i=0; i

printf("\n");

}

16.给定程序中,函数FUN的功能是;求SS所指字符串数组中长度最长的字符串所在的行下标,作为函数值返回,并把其串长防在形参n所指变量中。SS所指字符串数组中共有M个字符串,且串长< N。

#include

#define M 5

#define N 20

/**********************************found*********************************/

int fun(char (*ss) [___1___], int *n) N

{ int i, k=0, len=0;

for(i=0; i

{ len=strlen(ss[i]);

/**********************************found*********************************/ if(i==0) *n=___2___; len

if(len>*n) {

/**********************************found*********************************/ *n=____3____; len k=i;

}

}

return(k);

}

main( )

{ char ss[M][N]={"shanghai","guangzhou","beijing","tianjing","cchongqing"};

int n,k,i;

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

for(i=0;i

k=fun(ss,&n);

printf("\nThe length of longest string is : %d\n",n);

printf("\nThe longest string is : %s\n",ss[k]);

}

17.函数FUN的功能是:逆置数组元素中的值。例如:若a所指数组中的数据依次为:1,2,3,4,5,6,7,8,9,则逆置后依次为:9,8,7。6,5,4,3,2,1。形参n给出数组中数据的个数。

#include

void fun(int a[], int n)

{ int i,t;

/**********************************found*********************************/ for (i=0; i<___1___; i++) n/2

{

t=a[i];

/**********************************found*********************************/ a[i] = ___2___ a[n-1-i];

/**********************************found*********************************/ a[n-1-i]= ___3___; t

}

}

main( )

{ int b[9]={1,2,3,4,5,6,7,8,9}, i;

printf("\nThe original data :\n");

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

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

printf("\n");

fun(b, 9);

printf("\nThe data after invert :\n");

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

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

printf("\n");

}

18.给定程序中,函数FUN的功能是:在形参S所指字符串中寻找与参数c相同的字符,并在其后插入一个与之相同的字符,若找不到相同的字符则函数不做任何处理。例如,s所指字符串:baacda,c中的字符为:a, 执行后S所指字符串为:baaaacdaa。

#include

void fun(char *s, char c)

{ int i, j, n;

/**********found**********/

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

if(s[i]==c)

{

/**********found**********/

n=____2____; 0

while(s[i+1+n]!='\0') n++;

for(j=i+n+1; j>i; j--) s[j+1]=s[j];

/**********found**********/

s[j+1]=s[___3___] ; i

i=i+1;

}

}

main()

{ char s[80]="baacda", c;

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

printf("\nInput a character: "); scanf("%c",&c);

fun(s,c);

printf("\nThe result is: %s\n",s);

}

19.函数FUN的功能是:把形参a所指数组总的奇数原顺序依次存放到a[0],a[1],a[2].……中,把偶数从数组中删除,奇数个数通过函数值返回。例如:若a所指数组中的数据最初排列为: 9、1、4、2、3、6、5、8、7,删除偶数后,a所指数组中数据为:9、1、3、5、7,返回值为5。

#include

#define N 9

int fun(int a[], int n)

{ int i,j;

j = 0;

for (i=0; i

/**********************************found*********************************/ if (a[i]%2==___1___) 1

{

/**********************************found*********************************/ a[j] = a[i]; ___2___; j++ }

/**********************************found*********************************/ return ___3___; j

}

main( )

{ int b[N]={9,1,4,2,3,6,5,8,7}, i, n;

printf("\nThe original data :\n");

for (i=0; i

printf("\n");

n = fun(b, N);

printf("\nThe number of odd : %d \n", n);

printf("\nThe odd number :\n");

for (i=0; i

printf("\n");

}

20.给定程序的功能是:调用函数FUN将指定源文件中的内容复制到指定的目标文件中,复制成功时函数返回值为0。在复制的过程中,把复制的内容输出到终端屏幕。主函数中源文件名防在变量sfname中,目标文件名放在变量tfname中。

#include

#include

int fun(char *source, char *target)

{ FILE *fs,*ft; char ch;

/**********************************found*********************************/ if((fs=fopen(source, ___1___))==NULL) "r"

return 0;

if((ft=fopen(target, "w"))==NULL)

return 0;

printf("\nThe data in file :\n");

ch=fgetc(fs);

/**********************************found*********************************/ while(!feof(___2___)) fs

{ putchar( ch );

/**********************************found*********************************/ fputc(ch,___3___); ft

ch=fgetc(fs);

}

fclose(fs); fclose(ft);

printf("\n\n");

return 1;

}

main( )

{ char sfname[20] ="myfile1",tfname[20]="myfile2";

FILE *myf; int i; char c;

myf=fopen(sfname,"w");

printf("\nThe original data :\n");

for(i=1; i<30; i++){ c='A'+rand( )%25;fprintf(myf,"%c",c); printf("%c",c); }

fclose(myf);printf("\n\n");

if (fun(sfname, tfname)) printf("Succeed!");

else printf("Fail!");

}

21.函数FUN的功能是:计算

#include

#include

double fun(double x)

{ double f, t; int n;

/**********************************found*********************************/

f = 1.0+___1___; x

t = x;

n = 1;

do {

n++;

/**********************************found*********************************/ t *= x/___2___; n

/**********************************found*********************************/

f += ___1___; t

} while (fabs(t) >= 1e-6);

return f;

}

main( )

{ double x, y;

x=2.5;

y = fun(x);

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

printf("x=%-12.6f y=%-12.6f \n", x, y);

}

22.给定程序中,函数FUN的功能是:统计形参S所指字符串中数字字符出现的次数,并存放在形参t所指的变量中最后在函数中输出。例如,形参所指的字符串为:abcdef35adgh3kjsdf7,输出结果为:4。

#include

void fun(char *s, int *t)

{ int i, n;

n=0;

/**********************************found*********************************/ for(i=0; ___1___ !=NULL; i++) s[i]

/**********************************found*********************************/ if(s[i]>='0'&&s[i]<=___2___) n++; '9'

/**********************************found*********************************/ *t=___3___; n

}

main( )

{ char s[80]="abcdef35adgh3kjsdf7";

int t;

printf("\nThe original string is : %s\n",s);

fun(s,&t);

printf("\nThe result is : %d\n",t);

}

23.用筛选法可得到2—n(n<10000)之间的所有素数,方法是:首先从素数2开始,将所有2的倍数的数从数表中删去(把数表中相应位置的值置成0)接着从数表中找下一个非0数,并从数表中找下一个非0数,并从数表中删去该书的所有倍数:依次类推,直到所找的下一个数等于n为止。这样会得到一个序列:2,3,5,7,11,13,17,19,23,……

函数FUN用筛选法找出所有小于等于n的素数,并统计素数的个数作为函数值返回。

#include

int fun(int n)

{ int a[10000], i,j, count=0;

for (i=2; i<=n; i++) a[i] = i;

i = 2;

while (i

/**********************************found************************************/ for (j=a[i]*2; j<=n; j+=___1___) a[i]

a[j] = 0;

i++;

/**********************************found************************************/ while (a[i]==___1___) 0

i++;

}

printf("\nThe prime number between 2 to %d\n", n);

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

/**********************************found************************************/ if (a[i]!=____3____) 0

{ count++; printf( count%15?"%5d":"\n%5d",a[i]); }

return count;

}

main()

{ int n=20, r;

r = fun(n);

printf("\nThe number of prime is : %d\n", r);

}

24.给定程序中,函数FUN的功能是:将N X N 矩阵主对角线元素中的值与反向对角线对应位置上元素中的值进行交换。例如,若N=3,有下列矩阵:

1 2 3 3 2 1

4 5 6 交换后为: 4 5 6

7 8 9 9 8 7

#include

#define N 4

/**********************************found*********************************/

void fun(int ___1___, int n) t[N][N]

{ int i,s;

/**********************************found*********************************/ for(___2___; i++) i=0;i

{ s=t[i][i];

t[i][i]=t[i][n-i-1];

/**********************************found*********************************/ t[i][n-1-i]=___3___; s

}

}

main( )

{ int t[][N]={21,12,13,24,25,16,47,38,29,11,32,54,42,21,33,10}, i, j;

printf("\nThe original array:\n");

for(i=0; i

{ for(j=0; j

printf("\n");

}

fun(t,N);

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

for(i=0; i

{ for(j=0; j

}

}

25.给定程序中,函数FUN的功能是:在形参S所指字符串中寻找与参数C相同的字符,并在其后插入一个与相同的字符,若找不到相同的字符则函数不做任何处理。

例如,S所指字符串为:baacda,执行后S所指字符串为:baaaacdaa

#include

void fun(char *s, char c)

{ int i, j, n;

/**********************************found*********************************/

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

if(s[i]==c)

{

/**********************************found*********************************/

n=___2___ ;

while(s[i+1+n]!='\0') n++;

for(j=i+n+1; j>i; j--) s[j+1]=s[j];

/**********************************found*********************************/

s[j+1]=___3___ ;

i=i+1;

}

}

main( )

{ char s[80]="baacda", c;

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

printf("\nInput a character: "); scanf("%c",&c);

fun(s,c);

printf("\nThe result is: %s\n",s);

}

26.函数FUN的功能是:把形参a所指数组中的最小值放在元素a[0]中,接着把形参a 所指数组中的最大值放在a[1]元素中;再把a所指数组元素中的次小值放在a[2]中,把a所指数组元素中的次大值放在a[3];其余以次类推。例如:若a所指数组中的数据最初排列为:9,1,4,2,3,6,5,8,7;则按规则移动后,数据排列为:1,9,2,8,3,7,4,6,5。形参n中存放a所指数组中数据的个数。

注意:规定FUN函数中的MAX存放当前所找的最大值,PX存放当前所找最大值的下标。

# include

#define N 9

void fun(int a[], int n)

{ int i,j, max, min, px, pn, t;

for (i=0; i

{

/**********************************found*********************************/ max = min =___1___; a[i]

C语言程序设计程序填空题库及答案

程序填空题 导读:在程序填空题中,已经给出了程序的主干,读者首先要理解程序的思路,再选择正确的内容填入空白处,使程序完成既定的功能。这类习题的设计就是要引导读者逐步掌握编程的方法。本节习题的难度适中,可能有些典型的程序在课堂上已经有所接触,读者一定要独立完成它,这样就可以逐步提高自己的编程能力。在程序设计语言学习的中期,读者对程序设计已经有了初步的了解,而自己编写程序又不知从何处入手,此时解答此类题目可以避免盲目性,从而提高学习的效率。 【】下面程序的功能是不用第三个变量,实现两个数的对调操作。#include <> main() { int a,b; scanf("%d%d",&a,&b); printf("a=%d,b=%d\n",a,b); a= ①; b= ②; a= ③; printf("a=%d,b=%d\n",a,b); }

【】下面程序的功能是根据近似公式:π2/6≈ 1/12+1/22+1/32+ …… +1/n2,求π值。 #include <> double pi(long n) { double s=; long i; for(i=1;i<=n;i++) s=s+ ①; return( ②); } 【】下面的程序的功能是求一维数组中的最小元素。 findmin(int *s,int t,int *k) { int p; for(p=0,*k=p;p

C语言程序设计期末考试试题(含答案)

C语言程序设计 期末考试试题及其答案 一、单项选择题(本大题共20题,每题2 分,共40分) 1、以下不是C语言的特点的是( ) A、C语言简洁、紧凑 B、能够编制出功能复杂的程序 C、C语言可以直接对硬件进行操作 D、C语言移植性好 2、以下不正确的C语言标识符是( ) A、ABC B、abc C、a_bc D、ab.c 3、一个C语言程序是由( ) A、一个主程序和若干子程序组成 B、函数组成 C、若干过程组成 D、若干子程序组成 4、一个算法应该具有“确定性”等5个特性,对另外4个特性的描述中错误的是( ) A、有零个或多个输入 B、有零个或多个输出 C、有穷性 D、可行性 5、设变量a是整型,f是实型,i是双精度型,则表达式10+‘a’+i*f值的数据类型为( ) A、int B、float C、double D、不确定 6、在C语言中,char型数据在内存中的存储形式是( ) A、补码 B、反码 C、源码 D、ASCII码 7、有如下程序,输入数据:12345M678<cR>后(表示回车),x的值是( ) 。 #include main(){ int x; float y; scanf("%3d%f",&x,&y); } A、12345 B、123 C、45 D、345 8、若有以下定义int a,b; float x,则正确的赋值语句是( ) A、a=1,b=2 B、b++; C、a=b=5 D、b=int(x); 9、以下程序的执行结果是( )

#include { int i=10,j=10; printf("%d,%d\n",++i,j--); } A、11,10 B、9,10 C、11,9 D、10,9 10、巳知字母A的ASCII码是65,以下程序的执行结果是( ) #include main() { char c1='A',c2='Y'; printf("%d,%d\n",c1,c2); A、A,Y B、65,65 C、65,90 D、65,89 11、下列运算符中优先级最高的是( ) A、< B、十 C、% D、!= 12、设x、y和z是int型变量,且x=3,y=4,z=5,则下面表达式中值为0是( ) 。 A、’x’&&’y’ B、x<=y C、x||y+z&&y-z D、!((x<y)&&!z ||1) 13、判断char型变量cl是否为小写字母的正确表达式为( ) A、’a’<=c1<=f’z’ B、(c1>=a)&&(c1<=z) C、(‘a’>=c1) (‘z’<=c1) D、(c1>=’a’)&&(c1<=’z’) 14、字符串"a"在内存中占据的字节个数为( ) A、0 B、 1 C、 2 D、 3 15、下面有关for循环的正确描述是( ) A、for循环只能用于循环次数已经确定的情况 B、for循环是先执行循环体语句,后判定表达式 C、在for循环中,不能用break语句跳出循环体 D、for循环体语句中,可以包含多条语句,但要用花括号括起来 16、下面程序的运行结果是( ) #include main() {int num=0; while(num<=2) {num++; printf(“%d ,num); } } A、 1 B、 1 2 C、 1 2 3

C语言程序设计期末练习填空题.docx

面向对象程序设计期末综合练习二(填空题) 填空题 1.C++ 语言是在 _________语言的基础上发展起来的。 2.C++ 语言的编译单位是扩展名为 __________的 __________文件。 3.行尾使用注释的开始标记符为 __________ 。 4.多行注释的开始标记符和结束标记符分别为__________ 和 __________。 5.用于输出表达式值的标准输出流对象是_________。 6.用于从键盘上为变量输入值的标准输入流对象是________。 7.一个完整程序中必须有一个名为 ________的函数。 8.一个函数的函数体就是一条 _________语句。 9.当执行 cin 语句时,从键盘上输入每个数据后必须接着输入一个________符,然后才能继续输入下一个数据。 10.在 C++程序中包含一个头文件或程序文件的预编译命令为__________。 11.程序中的预处理命令是指以______字符开头的命令。 12.一条表达式语句必须以 ______ 作为结束符。 13.在#include 命令中所包含的头文件,可以是系统定义的头文件,也可以是 ________定义的头文件。 14.使用 #include 命令可以包含一个头文件,也可以包含一个______文件。 15.一个函数定义由 ________和 ________两部分组成。 16.若一个函数的定义处于调用它的函数之前,则在程序开始可以省去该函数的______语句。 17. C++头文件和源程序文件的扩展名分别为______和 ______。 18.程序文件的编译错误分为 ________和 ________两类。 19.当使用 _______保留字作为函数类型时,该函数不返回任何值。 20.当函数参数表用 ______保留字表示时,则表示该参数表为空。 21 .从一条函数原型语句“int fun1(void);”可知,该函数的返回类型为______,该函数带有______ 个参数。 22.当执行 cout 语句输出 endl 数据项时,将使 C++显示输出屏幕上的光标从当前位置移动到 ________的开始位置。 23.假定 x=5,y=6,则表达式 x++*++y 的值为 __________ 。 24.假定 x=5,y=6,则表达式x--*--y的值为__________。 25.假定 x=5,y=6,则执行表达式 y*=x++ 计算后, x 和 y 的值分别为 __________和 __________ 。 26.假定 x=5,y=6,则执行表达式 y+=x-- 计算后, x 和 y 的值分别为 __________和 __________ 。 27.C++ 常数 0x145 对应的十进制值为 __________。 28.C++ 常数 0345 对应的十进制值为 __________ 。 29.十进制常数 245 对应的十六进制的 C++表示为 __________。 30.十进制常数 245 对应的八进制的 C++表示为 __________ 。 31.signed char类型的值域范围是________至__________之间的整数。 32.int和float类型的数据分别占用_________和__________个字节。 33.float和double类型的数据分别占用_________和________个字节。 34.bool和char类型的数据分别占用_________和________个字节。 35.unsigned short int和int类型的长度分别为_________和________。

大学计算机C语言程序设计(填空题)

一、填空共219题 第1题题号:422 设有以下结构类型说明和变量定义,则变量a在内存所占字节数是【1】 . Struct stud { char num[6]; int s[4]; double ave; } a,*p; 答案: 1). 22 第2题题号:533 设x和y均为int型变量,则以下for循环中的scanf语句最多可执行的次数是【1】. for (x=0,y=0;y!=123&&x<3;x++) scanf ("%d",&y); 答案: 1). 3 第3题题号:496 静态变量和外部变量的初始化是在【1】阶段完成的,而自动变量的赋值是 在【2】时进行的. 答案: 1). 编译 2). 函数调用 第4题题号:96 已知a=13,b=6, a&b的十进制数值为【1】. 答案: 1). 4 第5题题号:398

程序段int k=10; while(k=0) k=k-1循环体语句执行【1】次. 答案: 1). 0 第6题题号:651 设w=5;w+= -2;则w的值为【1】. 答案: 1). 3 第7题题号:258 下面程序段的输出结果是【1】. int a=12; a=a&0377;pritnf("%d\n",a); 答案: 1). 12 第8题题号:457 设a,b,c,t为整型变量,初值为a=3,b=4,c=5,执行完语句t=!(a+b)+c-1&&b+c/2 后,t的值是【1】. 答案: 1). 1 第9题题号:402 设a取二进制数00101101,若想通过a^b运算使a的高4位取反,低4位不变,则b的 二进制数是【1】. 答案: 1). 11110000 第10题题号:311 若所用变量均已正确定义,则执行下面程序段后的值是【1】. for(i=0 ; i<2 ; i++ ) printf("YES"); printf("\n"); 答案: 1). YESYES

C语言程序设计的试题及答案

C语言程序设计的试题及答案 C语言程序设计的试题及答案C语言程序设计的试题及答案第一章基础知识 一、填空 1.每个C程序都必须有且仅有一个________函数。 2.C语言程序开发到执行通常要经过6个阶段即编辑、预处理、________、链接、加载和执行。 3.软件是程序,以及______、使用和维护所需要的所有文档。 4.国标中规定:“计算机程序是按照具体要求产生的适合于计算机处理的_________”。 5.程序设计语言按照书写形式,以及思维方式的不同一般分为低级语言和________两大类。 6.C语言是由________组成的。 7.C语言的函数可分为主函数ain、标准库函数和_________。 8.一个函数是由两部分组成的,即:________和函数体。 9.编译是将C语言所编写的源程序________成机器代码,也称为建立目标代码程序的过程。 10.程序是由某种程序设计语言编制出来,体现了编程者的控制思想和对计算机执行操作的要求。不同的任务功能,就会需求不同的软件程序,如:控制计算机本身软硬件协调工作,并使其设备充分发挥效力,方便用户使用的系统软件程序,称为操作系统;而为办公自

动化、管理信息系统、人工智能、电子商务、网络互联等等应用而开发的软件程序,统称为_________。 11.机器语言是以__________形式表示的机器基本指令的集合,是计算机系统唯一不需要翻译可以直接识别和执行的程序设计语言。 12.与机器语言相比,使用汇编语言来编写程序可以用_______来表示指令的操作码和操作对象,也可以用标号和符号来代替地址、常量和变量。 13.在编译程序之前,凡以____开头的代码行都先由预处理程序预处理。 14.C程序的执行均是由执行_________开始。15.函数体即为包含在{}内的部分。它分为________和为完成功能任务由若干个C语句组成的执行部分。 16.C语言程序中一条简单语句是以________字符作为结束符的。 17.C语言是结构化、________的程序设计语言。 18.由于计算机硬件不能直接识别高级语言中的语句,因此,必须经过“_______程序”,将用高级语言编写的程序翻译成计算机硬件所能识别的机器语言程序方可执行。 19.用高级语言编写的程序需翻译成计算机硬件所能识别的机器语言程序方可执行。所以说,用高级语言进行程序设计,其编程效率高,方便易用,但_______没有低级语言高。 20.第一个系统体现结构化程序设计思想的教学工具语言是_______语言。

C语言程序设计试题集及答案

单项选择题 (002) 阅读程序题 (018) 程序填空题 (039) 编写程序题 (070) 一、单项选择题 导读:单项选择题要求从给出的四个备选答案中,选出一个最符合题意的答案。本类习题主要检查对C语言基本概念的掌握情况,读者可根据学习进度选做部分习题。在完成习题的过程中,不但要选出正确的答案,而且要清楚不正确的选项错在何处,以加深对概念的理解。对于掌握不准的问题,应该通过上机实验来检验。 【1.1】以下不正确的C语言标识符是____。 A) int B) a_1_2 C) ab1exe D) _x 【1.2】以下是正确的C语言标识符是____。 A) #define B) _123C) %d D) \n

【1.3】下列四组字符串中都可以用作C语言程序标识符的一组是。 ??? A) print B) i\am C) Pxq D) str_l ??? _3d one_half My->book Cpp ??? oodbs tart$it line# pow ??? aBc 3pai His.age while 【1.4】下面各选项组中,均是C语言关键字的组是。 A) auto,enum,include B) switch,typedef,continue C) signed,union,scanf D) if,struct,type 【1.5】下列不属于C语言关键字的是。 A) default B) register C) enum D) external 【1.6】C语言程序从main()函数开始执行,所以这个函数要写在____。 A) 程序文件的开始B) 程序文件的最后 C) 它所调用的函数的前面D) 程序文件的任何位置 【1.7】下列关于C语言的叙述错误的是____ A) 大写字母和小写字母的意义相同 B) 不同类型的变量可以在一个表达式中 C) 在赋值表达式中等号(=)左边的变量和右边的值可以是不同类型 D) 同一个运算符号在不同的场合可以有不同的含义 【1.8】在C语言中,错误的int类型的常数是。 A) 32768 (超过了范围) B) 0 C) 037 D) 0xAF 【1.9】执行语句printf("%x",-1);屏幕显示____。 A) -1 B) 1 C) –ffff D) ffff 【1.10】已知long i=32768;执行语句printf("%d",i);屏幕显示____。 A) -1 B) -32768C) 1 D) 32768 【1.11】已知long i=65539; 执行语句printf("%d",i);屏幕显示____。 A) 65539 B) -3 C) 3D) 程序不能执行 【1.12】在C语言中,整数-8在内存中的存储形式是。 A) 1111 1111 1111 1000B) 1000 0000 0000 1000 C) 0000 0000 0000 1000 D) 1111 1111 1111 0111 【1.13】C语言中字符型(char)数据在内存中的存储形式是____。

C语言程序设计练习题(含程序及参考答案)

1、定义一个函数int fun(int a,int b,int c),它的功能是:若a,b,c能构成等边三角形函数返回3,若能构成等腰返回2,一般三角形返回1,若不能构成三角形返回0。 #include <> int fun(int a,int b,int c) { if(a+b>c && b+c>a && a+c>b) { if(a==b && b==c ) return 3; else if(a==b||b==c||a==c) return 2; else return 1; } else return 0; } void main() { int a,b,c,shape; printf("\nInput a,b,c: "); scanf("%d%d%d",&a,&b,&c); printf("\na=%d, b=%d, c=%d\n",a,b,c); shape =fun(a,b,c); printf("\n\nThe shape : %d\n",shape); } 2、编写一个程序,将两个变量的值交换, 例如变量a中的值

原为 3,b中的值原为8,程序运行后 a 中的值为8,b中的值为3。 #include <> void fun(int *x,int *y) { int t; t=*x;*x=*y;*y=t } void main() { int a=3,b=8; printf("%d %d\n",a,b); fun(&a,b); printf("%d %d\n",a,b); } 3、从键盘输入3个数,将最大值放在变量a中,最小值放在变量c中。 例如,输入的数为:55 12 34, 输出结果应当是:a=,b=,c=。 #include <> void fun(float *p,float *q,float *s) { float k; if (*p<*q) { k=*p;*p=*q;*q=k;} if (*q<*s) { k=*s;*s=*p;*p=k;}

(完整word版)C语言程序设计填空题及答案复习用

. 导读:在程序填空题中,已经给出了程序的主干,读者首先要理解程序的思路,再选择正确的内容填入空白处,使程序完成既定的功能。这类习题的设计就是要引导读者逐步掌握编程的方法。本节习题的难度适中,可能有些典型的程序在课堂上已经有所接触,读者一定要独立完成它,这样就可以逐步提高自己的编程能力。在程序设计语言学习的中期,读者对程序设计已经有了初步的了解,而自己编写程序又不知从何处入手,此时解答此类题目可以避免盲目性,从而提高学习的效率。 【3.1】下面程序的功能是不用第三个变量,实现两个数的对调操作。 #include main() { int a,b; scanf("%d%d",&a,&b); printf("a=%d,b=%d\n",a,b); a= ①; b= ②; a= ③; printf("a=%d,b=%d\n",a,b); } 【3.2】下面程序的功能是根据近似公式:π2/6≈ 1/12+1/22+1/32+ …… +1/n2,求π值。 #include double pi(long n) { double s=0.0; long i; for(i=1;i<=n;i++) s=s+ ①; return( ②); } 【3.3】下面的程序的功能是求一维数组中的最小元素。findmin(int *s,int t,int *k) { int p; for(p=0,*k=p;p0?t=-1:1; } printf("%d\n",s); } 【3.5】有以下程序段: s=1.0; for(k=1;k<=n;k++) s=s+1.0/(k*(k+1)); printf("%f\n",s); 填空完成下述程序,使之与上述程序的功能完全相同。 s=0.0; ①; k=0; do { s=s+d; ②; d=1.0/(k*(k+1)); }while( ③); printf("%f\n",s); 【3.6】下面程序的功能是从键盘上输入若干学生的学习 成绩,统计并输出最高成绩和最低成绩,当输入为负数 时结束输入。 main() { float x,amax,amin; scanf("%f",&x); amax=x; amin=x; while( ①) { if(x>amax) amax=x; if( ②) amin=x; scanf("%f",&x); } printf("\namax=%f\namin=%f\n",amax,amin); } 【3.7】下面程序的功能是将形参x的值转换为二进制数, 所得的二进制数放在一个一维数组中返回,二进制数的 最低位放在下标为0的元素中。 fun(int x,int b[]) { int k=0,r; do { r=x% ①; b[k++]=r; x/= ②; }while(x); } 【3.8】下面程序的功能是输出1到100之间每位数的乘 积大于每位数的和的数。例如数字26,数位上数字的乘 积12大于数字之和8。 main()

C语言程序设计填空题及答案复习用

C语言程序设计填空题及答案复习用 公司内部编号:(GOOD-TMMT-MMUT-UUPTY-UUYY-DTTI-

导读:在程序填空题中,已经给出了程序的主干,读者首先要理解程序的思路,再选择正确的内容填入空白处,使程序完成既定的功能。这类习题的设计就是要引导读者逐步掌握编程的方法。本节习题的难度适中,可能有些典型的程序在课堂上已经有所接触,读者一定要独立完成它,这样就可以逐步提高自己的编程能力。在程序设计语言学习的中期,读者对程序设计已经有了初步的了解,而自己编写程序又不知从何处入手,此时解答此类题目可以避免盲目性,从而提高学习的效率。【】下面程序的功能是不 用第三个变量,实现两个 数的对调操作。 #include <> main() { int a,b; scanf("%d%d",&a,&b); printf("a=%d,b=%d\n",a ,b); a= ①; b= ②; a= ③; printf("a=%d,b=%d\n",a ,b); } 【】下面程序的功能是根 据近似公式:π2/6≈ 1/12+1/22+1/32+ …… +1/n2,求π值。 #include <> double pi(long n) { double s=; long i; for(i=1;i<=n;i++) s=s+ ①; return( ② ); } 【】下面的程序的功能是 求一维数组中的最小元 素。 findmin(int *s,int t,int *k) { int p; for(p=0,*k=p;p

C语言程序设计选择填空习题及答案

习题一 一、选择题 1.C程序的基本单位是(A)。 A.函数B.文件C.语句D.字符 2.C程序中的变量(B)。 A.不用说明B.先说明后引用 C.先引用后说明D.引用和说明顺序无关 3.变量的说明在(B)。 A.执行语句之后B.执行语句之前 C.执行语句当中D.位置无关 4.C语言是一种(C)。 A.机器语言B.符号语言 C.高级语言D.面向对象的语言 二、填空题 1.一个C程序总是从主函数开始执行。 2.结构化程序由顺序、选择、循环三种基本结构构成。 3.一个C程序只有一个名为main的主函数。 4.C程序中的每个语句以分号结束。 5.C程序中,函数由函数首部和函数体组成。 6.每个基本结构有一个入口和一个出口,没有死循环和死语句。7.算法是计算机解决问题所依据的步骤。 习题二 一、选择题 1.下列数据中属于字符串常量的是( B)。 A.ABC B."ABC" C.'abc' D.'A' 2.在计算机内存中,'\n'占用的字节数是( C)。 A.4 B.3 C.1 D.2 3.字符串"ABC"在内存中占用的字节数是( D)。 A.6 B.8 C.3 D.4 4.在C语言中,合法的长整型常数是( B)。 A.568701400 B.0L C.0.03546287 D.2.654e11 5.char型常量在内存中存放的是( A)。 A.ASCII代码值B.BCD代码值 C.十进制代码值D.内码值 6.下列各项中正确的标识符是( D)。 A.?bb B.a=8 C. b.βD.b_4 7.下列不正确的转义字符是( D)。 A.\\ B.\ 0 C.\" D.0x4

8.设整型变量a、b的值均为5,则表达式(m=n=a++)/(n=b-2)的值为( B)。 A.0 B.1 C.2 D.3 9.设a的值为5,执行下列语句后,b的值不为2的是( C)。 A.b=a/2 B.b=6-(--a) C.b=a%2 D.b=(float)a/2 10.执行语句x=(a=3,b=a--)后,x、a、b的值依次是( C)。 A.3,3,2 B.3,2,2 C.3,2,3 D.2,3,2 11.设有语句int a=3;,则执行了语句a+=a-=a*a;后,变量a的值是( D)。 A.3 B.0 C.9 D.-12 12.在下列运算符中,优先级最高的是( B)。 A.&& B.% C.= D.>= 13.设整型变量a的值为3,则计算表达式a---a后,表达式的值为(B)。 A.1 B.0 C.2 D.表达式出错 14.设整型变量a、b、c的值均为2,表达式a---b+++c++的结果是( C)。 A.6 B.9 C.2 D.表达式出错 15.若已定义x和y为double类型,则表达式x=1,y=x+3/2的值是( D)。 A.1 B.2.5 C.2 D.2.0 16.下列表达式中符合C语言语法的赋值表达式是( C)。 A.a=4+b++c=a+8 B.a=4+b++=a+8 C.a=(4+b,b++,a+8) D.a=4+b,c=a+8 17.若有以下定义:char a;int b;float c;double d;,则表达式a*b+d-c的值的类型为( D)。 A.int B.float C.char D.double 二、填空题 1.在内存中存储"A"要占 2 个字节,存储'A'要占 1 个字节。 2.符号常量的定义方法是 #define 常量名常量。 3.无符号基本整型的数据类型符为 unsigned int双精度实型数据类型符为 double ,字符型数据类型符为 char 。 4.十进制数673的二进制、八进制和十六进值数分别为 1010100001 、 2412 和 2A1 。 5.在C语言中,书写八进制数时必须加前缀 0 ;书写十六进制数时必须加前缀 0x 。6.在微机上,int型、short型、long型、float型和double型数据一般在内存中分别占 2 字节、 2 字节、 4 字节、 4 字节和 8 字节。 7.设有下列运算符:<<、+、++、&&、>=,其中优先级最高的是 ++ ,优先级最低的是 && 。8.设x、y为int型变量,且x=1,y=2,则表达式1.0+x/y的值为 1.0 。 9.设整型变量x、y、z均为5,则: ①执行x-=y-z后,x的值为 5 。 ②执行x%=y+z后,x的值为 5 。 10.数学式 a b×c 的C语言表达式为 a/b*c) 。 三、简答题 1.字符常量与字符串常量有什么区别? 2.对于Turbo C系统来说,char型变量与int型变量在内存中存储数据的区别是什么?3.整型变量可细分为哪六类? 4.什么是一个实型数据的规范化指数形式?

C语言程序设计填空题及答案复习用

导读:在程序填空题中,已经给出了程序的主干,读者首先要理解程序的思路,再选择正确的内容填入空白处,使程序完成既定的功能。这类习题的设计就是要引导读者逐步掌握编程的方法。本节习题的难度适中,可能有些典型的程序在课堂上已经有所接触,读者一定要独立完成它,这样就可以逐步提高自己的编程能力。在程序设计语言学习的中期,读者对程序设计已经有了初步的了解,而自己编写程序又不知从何处入手,此时解答此类题目可以避免盲目性,从而提高学习的效率。 【3.1】下面程序的功能是不用第三个变量,实现两个数的对调操作。#include main(){ int a,b;scanf("%d%d",&a,&b); printf("a=%d,b=%d\n",a,b);a= ①;b= ②;a= ③;printf("a=%d,b=%d\n",a,b);} 【3.2】下面程序的功能是根据近似公式:π2/6≈ 1/12+1/22+1/32+ …… +1/n2,求π值。#include double pi(long n){ double s=0.0;long i;for(i=1;i<=n;i++)s=s+ ①;return( ②);}【3.3】下面的程序的功能是求一维数组中的最小元素。findmin(int *s,int t,int *k){ int p;for(p=0,*k=p;p0?t=-1:1;}printf("%d\n",s);}【3.5】有以下程序段:s=1.0;for(k=1;k<=n; k++)s=s+1.0/(k*(k+1));printf("%f\n",s);填空完成下述程序,使之与上述程序的功能完全相同。s=0.0;①;k=0;do{ s=s+d;②;d=1.0/(k*(k+1));}while( ③);printf("%f\n",s);【3.6】下面程序的功能是从键盘上输入若干学生的学习成绩,统计并输出最高成绩和最低成绩,当输入为负数时结束输入。main(){ float x,amax,amin;scanf("%f",&x);amax=x;amin=x; while( ①){ if(x>amax) amax=x;if( ②) amin=x; scanf("%f",&x);}printf("\namax=%f\namin=%f\n ",amax,amin);}【3.7】下面程序的功能是将形参x的 值转换为二进制数,所得的二进制数放在一个一维数组 中返回,二进制数的最低位放在下标为0的元素中。 fun(int x,int b[]){ int k=0,r;do{ r=x% ①;b[k++]=r; x/= ②;}while(x);}【3.8】下面程序的功能是输出1 到100之间每位数的乘积大于每位数的和的数。例如数 字26,数位上数字的乘积12大于数字之和8。 main(){ int n,k=1,s=0,m;for(n=1;n<=100; n++){ k=1;s=0;①;while( ②) { k*=m%10; s+=m%10;③;}if(k>s)printf("%d",n);}}【3.9】下面 程序的功能是统计用0至9之间的不同的数字组成的三 位数的个数。main(){ int i,j,k,count=0;for(i=1;i<=9; i++)for(j=0;j<=9;j++)if( ①) continue;else for(k=0; k<=9;k++)if( ②) count++;printf("%d",count);} 【3.10】下面程序的功能是输出100以内的个位数为6、 且能被3整除的所有数。main(){ int i,j;for(i=0;①; i++) { j=i*10+6;if( ②) countinue;printf("%d",j);}} 【3.11】下面程序的功能是用辗转相除法求两个正整数 m和n的最大公约数。hcf(int m,int n){ int r; if(mmain(){ ①;int i,j;printf("Input 10 numbers please\n");for(i=0;②;i++ ) scanf("%f", &a[i]);printf("\n");for(i=2;③;i++ ) for(j=0;④; j++ )if( ⑤) { x=a[j];⑥;a[j+1]=x;}printf("The sorted 10 numbers;\n");for(i=0;⑦;i++ ) { if( ⑧) printf("\n");printf("%f\t",a[i]);}printf("\n");}【3.13】 下面程序的功能是读入20个整数,统计非负数个数,并 计算非负数之和。#include "stdio.h"main(){ int i,a[20],s,count;s=count=0;for(i=0;i<20; i++ )scanf("%d", ①);for(i=0;i<20;i++){ if(a[i]<0) ②;s+=a[i];count++;}printf("s=%d\t count=%d\n",s,count);}【3.14】下面程序的功能是 删除字符串s中的空格。#include main(){ char *s="Beijing ligong daxue"; int i,j;for(i=j=0;s[i]!='\0';i++)if(s[i]!= ' ') ①;else ②;s[j]= '\0';printf("%s",s);}【3.15】下面程序的功 能是将字符串s中所有的字符'c'删除。请选择填空。 #includemain( ){ char s[80];int i,j; gets(s);for(i=j=0;s[i]!= '\0';i++ )if(s[i]!= 'c') ①; s[j]= '\0';puts(s);} 【3.16】下面程序的功能是输出两个字符串中对应相等 的字符。请选择填空。 #include char x[]="programming"; char y[]="Fortran"; main() { int i=0; while(x[i]!= '\0' && y[i]!= '\0') if(x[i]==y[i]) printf("%c", ①); else i++; __________________________________________________

华师《C语言程序设计》练习题库答案

《C语言程序设计》试题库答案 一、选择题(下列各题有四个选项,只有一个答案是正确的,请选出正确选项)1--5ACDCB 6--10 ACBAB 11--15CCADB 16--20BABCD 21--25CDACC 26--30 DDBDB 31--35DADAA 36—40BCBCC 41—45CDCCB 46--50 CBAAD 51--55 BCAAC 56--60 DBBCA 61--65 CDCCD 66-70 CDDAC 71—75 CCDBC 76—80 DDBCA 81—85 CDDDB 86—90 BBBAB 二、填空题 1、【1】1 【2】2 2、【1】4 【2】8 3、 -16 4、 -32768 ~ 32767 5、【1】单精度型(或:float)【2】双精度型(或:double) 6、【1】整型【2】字符型【3】枚举类型 7、 1 8、 26 9、【1】12 【2】4 10、【1】6 【2】4 【3】2 11、 -60 12、 2 13、【1】10 【2】6 14、 5.500000 15、 3.500000 16、 i:dec=-4,oct=177774,hex=fffc,unsigned=65532 17、 *3.140000,3.142* 18、 c:dec=120,oct=170,hex=78,ASCII=x 19、 *d(1)=-2*d(2)=-2*d(3)=-2* *d(4)=177776*d(5)=177776*d(6)=177776* 20、 *d(1)=-2*d(2)=-2*d(3)=-2* *d(4)=fffe*d(5)=fffe*d(6)=fffe* 21、 *d(1)=3.50000e+00*d(2)=3.500e+00*d(3)=3.500e+00* *d(4)=-3.50000e+00*d(5)=-3.50000e+00*d(6)=-3.5000e+00* 22、 x=1 y=2 *sum*=3 10 Squared is: 100 23、 (1) 10 (2) □□□□10 (□表示空格) (3) 56.100000 (4) □□□□□□3.141600 (5) 5.68100e+02 (6) □□□3.14160e+00

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

《C语言程序设计》模拟试卷A 一、单项选择题(每题2分,共20分) 1、下列有关C语言的叙述中错误的是(D)。 A) C语句必须以分号结束 B) 任何一个C程序中有且只有一个主函数 C) 复合语句在语法上可被看作一条语句 D) C程序中对数据的任何操作都可由运算符实现 2、以下不能定义为用户标识符的是(C)。 A) MAIN B) _HJ C) 2ong D) LINE1 3、以下能正确定义一维数组的是(C)。 A) int a[5]={0,1,2,3,4,5}; B) int a[5]=”012345”; C) char a[ ]=”012345”;D) char a[5]={0,1,2,3,4,5}; 4、执行下列程序段后输出的结果是(C)。 x = 9; while (x > 7) { printf(“*”); x- -; } A) **** B) *** C) ** D) * 5、设char str1[10] = “ABCDE”, str2[10] = “xyz”; 则执行语句 printf(“%d”, strlen(strcpy(str1, str2))); 后的输出结果是(D)。解析: strcpy(str1,str2); 后,str1[] 里是"XYZ", Z 后面有字符串结束符 strcpy(str1,str2); 执行后,函数返回的是str1, 因为str1[] 里是新值"XYZ", 而 strlen(strcpy(str1,str2)) 就是strlen(str1的新值),所以得3。 strlen 统计到字符串结束符以前,即,不计入字符串结束符。 A) 9 B) 8 C) 5 D) 3 6、若用数组名作为函数调用的实参,则传递给形参的是(A)。

c语言程序设计期末试题B(含答案)

c语言程序设计期末试题B(含答案) 一单项选择题(每小题1分,共10分) 1.以下4组用户定义标识符中,全部合法的一组是() A)_total clu_1 sum B)if -max turb C)txt REAL 3COM D)int k_2 _001 2.以下程序的输出结果是() #include main( ) { int a = 1, b = 2, c = 3; printf(“%d”, c>b>a); } A) 2 B) 1 C) 0 D) 3 3.以下正确的叙述是() A) 在C语言中,main函数必须位于文件的开头 B) C语言每行中只能写一条语句 C) C语言本身没有输入、输出语句 D) 对一个C语言进行编译预处理时,可检查宏定义的语法错误 4.设有定义:int a,*pa=&a; 以下scanf语句中能正确为变量a读入数据的是() A)scanf("%d",pa); B)scanf("%d",a); C)scanf("%d",&pa); D)scanf("%d",*pa); 5.若有以下程序段, int c1=1,c2=2,c3; c3=1.0/c2*c1; 则执行后,c3中的值是() A) 0 B) 0.5 C) 1 D) 2 6.能正确表示逻辑关系:“a≥=10或a≤0”的C语言表达式是() A) a>=10 or a<=0 B)a>=0|a<=10 C)a>=10 &&a<=0 D)a>=10‖a<=0 7.执行下面的程序时,将1、2、3、4分别赋给a、b、c、d,正确的输入是() main( ) { int a,b,c,d; scanf(“%d,%d,%d%d”,&a,&b,&c,&d); … } A)1 2 3 4 B)1 2 3,4 C) 1,2,3,4 D) 1,2,3 4 8.有以下程序段 main( ) { int k=0;

C语言程序设计练习题(含程序及参考答案)

C语言练习题 1、定义一个函数int fun(int a,int b,int c),它的功能是:若a,b,c能构成等边三角形函数返回3,若能构成等腰三角形函数返回2,若能构成一般三角形函数返回1,若不能构成三角形函数返回0。 #include int fun(int a,int b,int c) { if(a+b>c && b+c>a && a+c>b) { if(a==b && b==c ) return 3; else if(a==b||b==c||a==c) return 2; else return 1; } else return 0; } void main() { int a,b,c,shape; printf("\nInput a,b,c: "); scanf("%d%d%d",&a,&b,&c); printf("\na=%d, b=%d, c=%d\n",a,b,c); shape =fun(a,b,c); printf("\n\nThe shape : %d\n",shape); }

2、编写一个程序,将两个变量的值交换, 例如变量a中的值原为 3,b中的值原为8,程序运行后 a 中的值为8,b中的值为3。 #include void fun(int *x,int *y) { int t; t=*x;*x=*y;*y=t } void main() { int a=3,b=8; printf("%d %d\n",a,b); fun(&a,b); printf("%d %d\n",a,b); }

相关主题