C语言练习5

C语言练习5


2024年5月8日发(作者:)

练习五

1.下列关于单目运算符++、--的叙述中正确的是____c__。

A、它们的运算对象可以是int型变量,但不能是double型变量和float型变量

B、它们的运算对象可以是任何变量和常量

C、它们的运算对象可以是char型变量、int型变量和float型变量

D、它们的运算对象可以是char型变量和int型变量,但不能是float型变量

2.以下叙述中正确的是 (A)。

A、C程序中注释部分可以出现在程序中任意合适的地方

B、分号是C语句之间的分隔符,不是语句的一部分

C、花括号“{“和”}”只能作为函数体的定界符

D、构成C程序的基本单位是函数,所有函数名都可以由用户命名

3.下面不正确的字符串常量是(C)。

A、"12'12" B、"0" C、'abc' D、" "

函数中用到格式符%5s,其中数字5表示输出的字符串占用5列,如果字符串长度大于5,

则输出按方式(B)。

A、 右对齐输出该字串,左补空格 B、按原字符长从左向右全部输出

C、输出错误信息

D、从左起输出该字符串,右补空格

5.语句printf("abre'hi'yboun");的输出结果是

(说明:'b'是退格符)(A)。

A、re'hi'you B、abre'hi'ybou C、abre'hi'ybou D、abre'hi'ybou

6.C语言的if语句嵌套时,if与else的配对关系是(C)。

A、每个else与if的配对是任意的 B、每个else总是与它上面的if配对

C、每个else总是与它上面的最近的并且没有配对的if配对 D、每个else总是与最外层的if配

7.以下程序的输出结果是 D

main()

{ int y = 10

for(; y > 0; y --)

if(y % 3 == 0)

{ pritnf(“%d”, --y); continue; }

}

A、741 B、963 C、875421 D、852

8.以下程序段中,不能正确赋字符串(编译时系统会提示错误)的是(D)。

A、char s[10];strcpy(s,"abcdefg"); B、char s[10]="abcdefg";

C、char t[]="abcdefg",*s=t; D、char s[10];s="abcdefg";

9.若输入ab,程序运行结果为(A)。

main()

{ static char a[2]; scanf("%s",a); printf("%c,%c",a[1],a[2]); }

A、b, B、程序出错 C、a, D、a,b

10.在C语言程序中(C)。

A、函数的定义和函数调用不可以嵌套 B、函数的定义可以嵌套,但函数的调用不可以嵌套

C、函数的定义不可以嵌套,但函数的调用可以嵌套 D、函数的定义和函数调用均可以嵌套

11.以下正确的函数定义形式是(C)。

A、double fun(int x,int y);B、double fun(int x;int y)

C、double fun(int x,int y)D、double fun(int x,y);

12.若有int a[10]={0,1,2,3,4,5,6,7,8,9},*p=a;则输出结果不为5

的语句为(D)。

A、 rintf("%d",*(a+5)); B、printf("%d",*(p+5));

1

练习五

C、printf("%d",p[5]);D、printf("%d",*p[5]);

13.下面选择中正确的赋值语句是(设char a[5],*p=a;)(D)。

A、*a="abcd"; B、*p="abcd"; C、a="abcd"; D、p="abcd";

14.根据以下定义,能输出字母M的语句是 B 。

struct person

{ char name[9]; Int age; };

struct person class[4]={{“John”,17},{“Paul”,19},{“Mary”,18},{“Adam”,16}};

A、printf(“%cn”,class[3].name[1]); B、printf(“%cn”,class[2].name[0]);

C、printf(“%cn”,class[2].name[1]); D、printf(“%cn”,class[3].name);

15.打开文件时,方式“w”决定了对文件进行的操作是(C)。

A、可读可写盘 B、追加写盘 C、只写盘 D、只读盘

1.复合语句在语法上被认为是____一条语句_。空语句的形式是__;___。

2.将上题中的双分支if语句改写成条件表达式语句:__printf(“%dn”, (a > 100) ? (a > 100) :

(a <= 100) );___

main()

{ int a = 100;

if( a > 100) printf(“%dn”, a > 100);

else printf(“%dn”, a <= 100);

}

3.以下程序段的输出结果是__死循环___。

int k, n, m;

n = 10; m = 1; k = 1;

while( k <= n )

m *= 2;

printf(“%dn”, m);

4.如果函数不要求带回值,可用___void__来定义函数返回值为空.

5.以下程序的执行结果是__ a = 20, b = 20 ___。

main()

{ int a, b, *p = &a, *q = &b;

a = 10; b = 20; *p = b; *q = a;

printf(“a = %d, b = %dn”, a, b); }

6.以下程序的运行结果是 __30x___。

#include

typedef struct student

{ char name[10]; long sno; float score; }STU;

main()

{ STU a = {“Zhangsan”, 2001,95}, b = {“Shangxian”, 2002,90},

c = {“Anhua”, 2003, 95}, d = a, *p = &d;

if(strcmp(, ) > 0) d = b;

if(strcmp(, ) > 0) d = c;

printf(“%ld %sn”, , p ->name);

}

7.以下C程序将磁盘中的一个文件复制到另一个文件中,

两个文件名在命令中给出。请填空。

#include

main( int argc, char *argv[])

{ FILE *f1, *f2; char ch;

if(argc <___3__)

{ printf(“命令行参数错!n”); exit(0); }

2

练习五

f1 = fopen(argv[1], “r”); f2 = fopen(argv[2], “w”);

while( ___!feof(f1)__ )

fputs( fget(f1), _f2____ );

___fclose(f1)__; ___fclose(f2)__}

8.设 x 的值为15,n 的值为2,则表达式 x*=n+3 运算后 x 的值是__75___.

9.已知 i=5, 写出语句 a=(i>5)?0:1; 执行后整型变量 a 的值是__1___.

【程序设计】

功能:将主函数中输入的字符串反序存放。程序中如果用

到循环,必须使用for循环。

例如:输入字符串“abcdefg”,则应输出“gfedcba”。

#include

#include

#include

#define N 81

void TestFunc();

void fun(char *str,int n)

{

/**********Begin**********/

int i,j;

char c;

for(i=0,j=n-1;i

{c=*(str+i);

*(str+i)=*(str+j);

*(str+j)=c;}

/********** End **********/

}

void main()

{

char s [N]; int l; printf("input a string:");gets(s);

l=strlen(s); fun(s,l);

printf("The new string is :");puts(s); TestFunc(); }

void TestFunc()

{ FILE *IN,*OUT; char sIN[20],*sOUT; int iLENGTH; IN=fopen("","r");

if(IN==NULL)

{ printf("Please Verify The Currernt Dir..It May Be Changed"); }

OUT=fopen("","w");

if(OUT==NULL)

{ printf("Please Verify The Current Dir.. It May Be Changed"); }

fscanf(IN,"%s",sIN); iLENGTH=strlen(sIN); sOUT=sIN;

fun(sIN,iLENGTH); fprintf(OUT,"%sn",sOUT);

fclose(IN); fclose(OUT); }

【程序改错】:只允许修改错误代码,其他代码不允许修改!

功能:用起泡法对10个整数从小到大排序。

#include "stdio.h"

/**********ERROR**********/

void sort(int x,int n)

{ int i,j,k,t; for(i=0;i

3

练习五

if(x[i]>x[i+1])

{

/**********ERROR**********/

x[j]=t; x[j]=x[j+1]; x[j+1]=t; }

}

void main()

{

int i,n,a[100];

printf("please input the length of the array:n");

scanf("%d",&n); for(i=0;i

/**********ERROR**********/

sort(n,a);printf("output the sorted array:n");

for(i=0;i<=n-1;i++) printf("%5d",a[i]); printf("n"); }

【参考答案】 void sort(int *x,int n) void sort(int x[],int n)

void sort(int x[10],int n)

【参考答案】

t=x[j]; t=*(x+j);

【参考答案】

sort(a,n);

【程序填空】

功能:用递归法将一个整数n转换成字符串,例如输入483,应输出

对应的字符串"483"。n的位数不确定,可以是任意位数的整 数。

#include

void convert(int n)

{ int i;

/**********FILL**********/

if((__i=n/10___)!=0)

convert(i);

/**********FILL**********/

putchar(n%10+__'0'___);

}

void main()

{ int number; printf("nInput an integer:");

scanf("%d",&number); printf("Output:");

if(number<0)

{ putchar('-');

/**********FILL**********/

number=__-number___; }

convert(number);

}

4


发布者:admin,转转请注明出处:http://www.yc00.com/web/1715108250a2567280.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信