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条)