C语言期末考试题带答案(第二套).docx
C语言考试题及答案(第二套)1、下列说法中正确的是()。A. C程序书写时,不区分大小写字母C程序书写时,一行只能写一个语句B. C程序书写时,一个语句可分成几行书写C程序书写时每行必须有行号2 .若 x=5, y=4 则 y*二x+5: y 的值为()。A. 40 B. 20 C B. 15D. 30.若有定义:int a=7; float x =2.5, y =4.7;则表达式 x+a%3*(int) (x+y)/4 的值是( )oA) 2. 75B) 3.5C) 2.5D) 0.若定义x和y为double类型,则表达式:x=2, y=x+5/2的值是A) 4B) 4.5C) 4.0D) 3.0.在以下运算符中,优先级最高的运算符是A) ? :B) +C) &&D) +=.表达式 是满足:当c的值为1、3、5三个数中任意一个时值为“真”,否则值为“假”的表达式A) (c=1) | | (c=3) | | (c二5)B) (c!=1)&&(c! =3)&&(c!=5)C) (c=1)&& (c=3) && (c=5)D) (c=1) | | (c=3) | | (c=5)4 .下列字符串是合法的标识符的是()oA、_HJ B、9_student C、 Iong D、LINE 18、对于循环语句while (1):下而()是正确的A、死循环B、循环一次D、编译有错C、不进入循环体 9、数字字符0的ASCI I值为48,若有以下程序 ma i n () char a=,1',b='2'pr i ntf ("%c, ", b+);pr i ntf ("%dn", b-a);)程序运行后的输出结果是A 3,2 B 50,2 C 2,2 D 2,5010、下面程序段的运行结果是()main ()int a=11, b=10, c=0;a/=b+ (b&&c);pr i ntf (" %dn" a);D. 11D. 11A. 0B. 10. 1. 111、语句whi Ie (!e);中,条件!e等价于()A. e=0B. e!=0C. e!=1D. e=012.下面的程序会() ma i n () i nt x=3, y=0, z=0;i f (x=y+z) pr i ntf ( * 0 );eIse pr intf ("#” );)A、有语法错误不能通过编译B、输出*C、可以通过编译,但不能通过连接,因而不能运行 D、输出#13、对两个数组a和b进行如下初始化char a="ABCDEF"char b二A,J B' C: " J E,J 1 ;则以下叙述正确的是()A) a与b数组完全相同B) a与b长度相同C) a和b中都存放字符串D) a数组比b数组长度长.以下对一维数组a中的所有元素进行正确初始化的是()A. int a10 =(0,0, 0,0) ;B. int a10 = );C. int a = 0;C. int a = 0;D. int a10 = 10*2);.执行如下程序段,当输入为I am<CR>时,输出的结果是char str80;scanf ( "%s",str);strcat (str, sad!”);pr i ntf ( "%s ",str);A) I am sad! B) I sad! C) I sad! D) sad!16、若调用一个函数,且此函数 中没有return语句,则正确的说法是() 该函数A.没有返回值B.返回若干个系统默认值C.能返回一个用户所希望的函数值D.返回一个不确定的值17.在一个被调用函数中,关于return语句使用的描述,错误的是()A、被调用函数中可以不用return语句B、被调用函数中可以使用多个return语句C、被调用函数中,如果有返回值,就一定要有return语句D、被调用函数中,一个return语句可返回多个值给调用函数18、选择程序的运行结果。ma i n ()( int x;x=try (5) ; pr i ntf ("%dn", x);)try ( int n ) i f ( n>0 ) return ( n * try (n-2);e I sereturn(1);)A)1B)15C)120D)答案均是错误的19、有以下程序void ss (char *s,char t)wh i I e (*s)if(*s=t) *s=t-'a' + 'A's+;)ma i n ()char str1100="abcddfefdbd",c='d,;ss (str1,c); pr intf ("%sn",str1);/?程序运行后的输出结果是 oA) ABCDDEFEDBDB) abcDDfefDbDC) abcAAfefAbAD) Abcddfefdbd.下面程序输出数组中的最大值,由s指针指向该元素。ma i n () int a 10 = 6, 7, 2, 9,1,10,5, 8,4, 3, *p, *s;for (p=a,s=a;p-a<10;p+)if() s=p;pr i ntf ( "The max:%dw , *s);)则在if语句中的判断表达式应是()A、p>s B、*p>*s C、a p>a s D、p-a>p-s.读程序,回答问题。#incIude <std io.h>#i ncIude <str i ng.h>void ma in (int argc, char *argv)(int i=1, n=0;wh iIe(i <argc)(n = n+strlen(argvi);i+;)pr i ntf ( "%dn",n);)若该程序生成的可执行文件名为2-4. exe,运行时输入命令行: 2-4 123 45 67则程序的运行结果是()oA、 3 B、 5 C、 7 D、 1122.读下列程序:void main() (static char str 50="485057ehk105101", *p=str;i nt sum1 = 0,sum2=0;while(*p!=,0) (if (*p>=48&&*p<=57) sum1+;else if(*p>=101&&*p<=107) sum2+;else; p+; )pr i ntf("%d, %dn", sum1, sum2);)程序的运行结果是A) 3, 2B) 2, 3C) 3, 12 D) 12, 323、以下程序的运行结果是 o# incIude " stdio.h " ma i n () (struct long a ;i nt b ; char c ;m ;pr i ntf ( " %d n ", s i zeof (m) ; A) 7B) 4 C) 1D) 824、以下程序的揄出结果为 o# define N 2# define M N+2#def i ne CUBE (x) (x*x*x)# include "stdio.h" ma i n () int i=M;i =CUBE(i);pr i ntf ("%dn", i);A) 17 B) 64 C) 125 D) 5325、以下程序中for循环执行的次数是()0#def i ne N 2#define M N+1#define NUM(M+1)*M/2 ma i n ()(int I;for(l=1;K=NUM;l+) pr intf ( "%dn" , I); )A. 5 B. 6C. 8D.926.读程序,回答问题。#i ncIude <std i o.h> struct mod int a, b,c; vo i d ma i n () struct mod st3 = (1,2,3), (4, 5, 6), (7, 8,91 ; i nt totaI;totaI = st0. a + st1. b; pr intf ("total=%dn", total);)程序运行结果是()。A、tota I = 5 B、tota I = 6 C> tota I = 7 D、tota I = 827.以下程序的运行结果是 o# i nc I ude " std i o. h "ma i n ()un i on Iong a ;1 nt b ; char c ; m ;pr i ntf ( " %d n ", s i zeof (m);)A) 4B) 2C) 6D) 828、由FILE *fp;charm;()11二£868(勾);可以推知fgetc函数的原型可以是 ( )A.void fgetc( );B.char fgetc ( )C. char fgetc(int);D. int fgetc (FILE *fp);29、若文本文件fi Ie. txt中的内容为“ABCD”4个字符,fp指向以读方式打开 的file, txt,则以下语句序列正常执行后,输出结果为 ofseek(fp, 0, SEEK_END); i=ftelI(fp);pr i ntf ("%d", i);(A) 0(B) 4(C) 1(D) -130、设以下程序的文件名为e8T2.c。#i no Iude<std i o. h>#i ncIude<str i ng. h>main(int argc, char *argv)Ichar ch;FILE *fp1, *fp2;if (argc!=3)pr i ntf("Command Ii ne i nput error. n");ex i t (0); )if(fp1=fopen(argv1, "r")二二NULL)(pr intf ("FiIe open error. n");ex i t (0); )if(fp2=fopen(argv2, "w")二二NULL)pr intf ("FiIe open error. n");fcIose(fp1); exit (0);1wh iIe(ch=fgetc(fp1)!=E0F)if(ch>='a' && ch<='z') chh+'A'-'a' fputc (ch, fp2);)fclose (fp1);fcIose (fp2);)上述程序经编译、连接得到可执行文件e872.exe后应在DOS命令提示符下 运行。若文件f i Ie1. txt存在,其内容为一行字符"This is an example,则 以下 是正确的命令行运行方式(4 表示按回车键)。(A) «8-12 file1.txt file2. txt* (B) e872 f i Ie1. txtU(C) e8-12 fi Ie2.txt(D)_e8-12_<答案1-5 CACCB 6-10DAACB 11-15 DDDCC 16-20 DDBBB21 -25 CDABC 26-30 BADAA