1、若变量均已正确定义并赋值,以下合法的C语言赋值语句是(C)。
A、x+n=I;
B、x==5;
C、x=n/2.5;
D、5=x=4+1;
2、下述错误的C语言常量是:(C).
A、0xf
B、5.
C、090
D、.25
3、根据下面的程序,使a=123,c1='o',c2='k'哪一种是正确的键盘输入方法?(B)。
(规定用字符串[CR]表示回车,U表示空格)
main()
{int a;
char c1,c2;
scanf("%d%c%c", &a,&c1,&c2);
}
A、123UoUk[CR]
B、123ok[CR]
C、123Uok[CR]
D、123oUk[CR]
4、已知键入a=4,b=3,执行下面程序输出的结果是(B).
main()
{ int a,b,s;
scanf("%d%d",&a,&b);
s=a;
if(a>b) s=b;
s=s*s;
printf("%d\\n", s);
}
A、13
B、9
C、16
D、15
5、执行下面程序段后,i的值是(A).
int i=10;
switch(i)
{case 9: i+=1;
case 10: i--;
case 11: i*=3;
case 12: ++i;
}
A、28
B、10
C、9
D、27
6、以下不是无限循环的语句为(D)。
A、while(1){x++;}
B、for(;;x++=i);
C、for(i=10;;i--) sum+=i;
D、for(y=0,x=1;x>++y;x=i++) i=x;
7、下面程序段运行的结果是(A).
x=-1;
do{
x=x*x;
}while (!x);
A、循环执行一次
B、有语法错误
C、死循环
D、循环执行两次
8、若有说明:int a[][3]={1,2,3,4,5,6,7};则a数组第一维的大小是(A)。
A、3
B、无确定值
C、4
D、2
9、若定义int a[12]={1,2,3,4,5,6,7,8,9,10,11,12};char c='a',d,g;
则数值为4的表达式是 (D).
A、a[4]
B、a[g-c]
C、a['d'-'c']
D、a['d'-c]
10、
以下叙述中正确的是(C)。
A、可以在一个函数中定义另一个函数
B、main()函数必须放在其它函数之前
C、构成C程序的基本单位是函数
D、所有被调用的函数一定要在调用之前进行定义
11、下述函数的功能是(C).
int fun(char *x)
{ char *y=x;
while(*y++);
return y-x-1;
}
A、比较两个字符串的大小
B、求字符串存放位置
C、求字符串的长度
D、将字符串x连接到字符串y后面
12、在执行"文件包含"命令时,下列说法正确的是(A).
A、作为一个源程序编译,得到一个目标文件.
B、一个 include 命令可指定多个被包含文件.
C、在编译时作为两个文件联结.
D、被包含的文件可以是源文件或目标文件.
13、在说明语句:int *f();中,标识符f代表的是(A)。
A、一个返回值为指针型的函数名
B、一个用于指向函数的指针变量
C、一个用于指向一维数组的行指针
D、一个用于指向整型数据的指针变量
14、下面程序的输出结果应该是(B ).
char s[ ]="ABCD";
main()
{char *p;
for ( p=s;p printf("%s",p);
}
A、DCBA
B、ABCDBCDCDD
C、ABCDABCABA
D、ABCD
15、设有如下定义: 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;
判断
1、在C程序中,%作为运算符时,是只能用于整数运算。T
2、若 a=3,b=2,c=1 则关系表达式"(a>b)==c" 的值为"真"。T
3、格式字符%g选用%e或%f格式中输出宽度较长的一种格式输出实数.F
4、整型变量在全部范围内可以用字符格式输出.F
5、已知a=3,b=4,c=5,则逻辑表达式!(a+b)+c-1 && b+c/2的值为0.F
6、语句if(a>b) printf("%d",a); else printf("%d",b);可以用条件表达式a>b?a:b取代.F
7、已知a=4,b=2,c=3,d=5,表达式a>b?a:c 9、continue语句对于while和do-while循环来说,意味着转去计算While表达式.T 10、for语句的循环体至少执行一次.F 11、语句 char ch[12]={"C Program"};与语句 char ch[ ]="C Program";具有不同的赋初值功能.T 12、定义char s[9];gets(s);若输入的字符串是Turbo c↙(↙代表按回车键操作) 则输入给数组s中的字符个数是7.T 13、对静态数组的初始化是在编译阶段完成的. T 14、C语言中,通过函数调用只能获得一个返回值.F 15、字符处理函数strcpy(str1,str2)的功能是把字符串1接到字符串2的后面.F 16、函数的返回值可以通过函数中的return语句获得。T 17、被包含文件是在编译时先单独生成目标文件,然后连接到可执行文件中去.F 18、char *p="girl";的含义是定义字符型指针变量p,p的值是字符串"girl"。F 19、对于不同类型的数据,若想合成一个有机的整体,可以引用结构体进行定义。T 20、用fopen("file打开的文件"file"可以进行修改。T 填空 1、设x的值为15,n的值为2,则表达式x%=(n+=3)运算后x的值是_____. 0 2、以下程序的输出结果为_____, #include "stdio.h" main(){int a=010,j=10;printf("%d,%d\\n",++a,j--);} 9,10 3、设a,b,c,t为整型变量,初值为a=3,b=4,c=5,执行完语句t=!(a+b)+c-1&&b+c/2 后,t的值是_____. 1 4、若输入字符串:abcde<回车>,则以下while循环体将执行 _____次. 0 while((ch=getchar())=='e') printf("*"); 5、若有以下数组a,数组元素:a[0]~a[9],其值为 9 4 12 8 2 10 7 5 1 3 该数组的元素中,数值最小的元素的下标值是_____. 8 6、函数不可以进行嵌套定义,但可以进行嵌套_____. 调用 7、在c程序中,只能给指针变量赋NULL值和_____值. 地址 8、设有以下共用体类型说明和变量定义,则变量a在内存所占字节数是 _____。 union stud { char num[6]; float s[4]; double ave; } a,*p; 16 程序设计 1、 /*------------------------------------------------ 【程序设计】 -------------------------------------------------- 功能:将字符串中的小写字母转换为对应的大写字母, 其它字符不变。 ------------------------------------------------*/ #include "string.h" #include "stdio.h" void change(char str[]) { /*********Begin**********/ int i; for(i=0;str[i]!='\\0';i++) if(str[i]>='a' && str[i]<='z') str[i]=str[i]-32; /********** End **********/ } main() { void change(); char str[40]; void TestFunc(); gets(str); change(str); puts(str); TestFunc(); } void TestFunc() { FILE *IN,*OUT; char i[200]; IN=fopen("in.dat if(IN==NULL) { printf("Read File Error"); } OUT=fopen("out.dat if(OUT==NULL) { printf("Write File Error"); } fscanf(IN,"%s",i); change(i); fprintf(OUT,"%s\\n",i); fclose(IN); fclose(OUT); } 2、 /*------------------------------------------------ 【程序设计】 -------------------------------------------------- 功能:从低位开始取出长整型变量s中偶数位上的数,依次 构成一个新数放在t中。 例如:当s中的数为:7654321时,t中的数为:2。 ------------------------------------------------*/ #include "stdio.h" long fun (long s,long t) { /*********Begin**********/ long sl=10; s /= 10; t = s % 10; while(s > 0) { s = s/100; t = s%10*sl + t; sl = sl * 10; } /********** End **********/ return t; } main() { long s, t,m; void TestFunc(); printf("\\nPlease enter s:"); scanf("%ld", &s); m=fun(s,t); printf("The result is: %ld\\n", m); TestFunc(); } void TestFunc() { FILE *IN,*OUT; int n; long i,t,m; IN=fopen("in.dat if(IN==NULL) { printf("Read File Error"); } OUT=fopen("out.dat if(OUT==NULL) { printf("Write File Error"); } for(n=0;n<5;n++) { fscanf(IN,"%ld",&i); m=fun(i,t); fprintf(OUT,"%ld\\n",m); } fclose(IN); fclose(OUT); } 程序改错 1、 /*------------------------------------------------------ 【程序改错】 -------------------------------------------------------- 功能:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半, 还不过瘾,又多吃了一个,第二天早上又将剩下的桃子吃掉 一半,又多吃了一个。以后每天早上都吃了前一天剩下的一 半零一个。到第10天早上想再吃时,见只剩下一个桃子了。 求第一天共摘了多少。 ------------------------------------------------------*/ #include "stdio.h" main() { int day,x1,x2; day=9; /**********ERROR**********/ x2==1; // x2=1; while(day>0) { /**********ERROR**********/ x1=(x2+1)/2; // x1=(x2+1)*2; x2=x1; /**********ERROR**********/ day++; //day--; day-=1; day=day-1; } printf("the total is %d\\n",x1); } 2、 /*------------------------------------------------------ 【程序改错】 -------------------------------------------------------- 功能:将s所指字符串的反序和正序进行连接形成一个新串放在 t所指的数组中。 例如:当s所指的字符串的内容为"ABCD"时,t所指数组中 的内容为"DCBAABCD"。 ------------------------------------------------------*/ #include "conio.h" #include "stdio.h" #include "string.h" /**********ERROR**********/ void fun (char s, char t) // void fun (char s[],char t[]) void fun (char *s,char *t) // void fun (char *s,char t[]) void fun (char s[],char *t) { int i, d; /**********ERROR**********/ d = len(s); // d = strlen(s); /**********ERROR**********/ for (i = 1; i // for (i = 0; i<=d-1; i++) for (i = 0; d-1>=i; i++) t[i] = s[d - 1 - i ]; for (i = 0; i /**********ERROR**********/ t[2*d] = '/0'; // t[2*d] = '\\0'; t[2*d] = NULL; t[2*d] = 0; // t[i+d] = '\\0'; t[i+d] = NULL; t[i+d] = 0; } main() { char s[100], t[100]; printf("\\nPlease enter string S:"); scanf("%s", s); fun(s, t); printf("\\nThe result is: %s\\n", t); } 程序填空 1、 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 题目:从键盘上输入10个整数,输入负数不算。 -------------------------------------------------------*/ #include "stdio.h" main() { int i=0,a; do { scanf("%d",&a); /***********FILL***********/ if (_____) i++; // a>=0 printf("\\na=%d,i=%d",a,i); } /***********FILL***********/ while(_____); // i<10 i<=9 } 2、 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 功能:通过函数的递归调用计算阶乘。 -------------------------------------------------------*/ #include "stdio.h" long power(int n) { long f; if(n>1) /***********FILL***********/ f=_____; // power(n-1)*n power(n-1)*n n*power(n-1) else f=1; return(f); } main() { int n; long y; printf("input a inteager number:\\n"); /***********FILL***********/ scanf("%d",_____); // &n y=power(n); /***********FILL***********/ printf("%d!=%ld\\n",n,_____); //y power(n) }