
大学C语言考试题库(含答案).doc
《大学C语言考试题库(含答案).doc》由会员分享,可在线阅读,更多相关《大学C语言考试题库(含答案).doc(53页珍藏版)》请在咨信网上搜索。
单项选择 ================================================== 题号:1482 执行以下程序段后,输出结果和a的值是()。 int a=10; printf("%d",a++); A、11 和 10 B、11 和 11 C、10 和 11 D、10 和 10 答案: C 题号:2100 已知字符'A'的ASCⅡ代码值是65,字符变量c1的值是'A',c2的值是'D'.执行语句printf("%d,%d",c1,c2-2);后,输出结果是 A、65,66 B、A,B C、65,68 D、A,68 答案: A 题号:5055 相同结构体类型的变量之间,可以()。 A、比较大小 B、地址相同 C、赋值 D、相加 答案: C 题号:3217 int a[10];合法的数组元素的最小下标值为()。 A、1 B、0 C、10 D、9 答案: B 题号:45 能正确表示逻辑关系:" a≥10或a≤0 "的C语言表达式是 A、a>=0 | a<=10 B、a>=10 or a<=0 C、a>=10 && a<=0 D、a>=10 || a<=0 答案: D 题号:157 main() {int x=1,a=0,b=0; switch (x) { case 0: b++; case 1: a++; case 2: a++;b++;} printf("a=%d,b=%d",a,b); }该程序的输出结果是( ) A、2,2 B、2,1 C、1,1 D、1,0 答案: B 题号:4784 设变量a是整型,f是实型,i是双精度型,则表达式10+'a'+i*f值的 数据类型为()。 A、不确定 B、double C、int D、float 答案: B 题号:1647 以下程序中,while循环的循环次数是______ main() { int i=0; while(i<10) { if(i<1) continue; if(i==5) break; i++; } } A、死循环,不能确定次数 B、6 C、4 D、1 答案: A 题号:191 若有说明语句:char c='\72';则变量c()。 A、说明不合法,c的值不确定 B、包含3个字符 C、包含1个字符 D、包含2个字符 答案: C 题号:1300 下列程序运行结果为: #define P 3 #define S(a) P*a*a main() {int ar; ar=S(3+5); printf("\n%d",ar); } A、192 B、25 C、29 D、27 答案: C 判断 ================================================== 题号:6755 若i =3,则printf("%d",-i++);输出的值为 -4。 答案:错误 题号:6167 表达式 (j=3, j++) 的值是4. 答案:错误 题号:1495 C语言中只能逐个引用数组元素而不能一次引用整个数组。 答案:正确 题号:2921 参加位运算的数据可以是任何类型的数据。 答案:错误 题号:2691 若有 int i=10,j=2;则执行完i*=j+8;后ⅰ的值为28。 答案:错误 题号:464 若 a=3,b=2,c=1 则关系表达式"(a>b)==c" 的值为"真"。 答案:正确 题号:66 若有 # define S(a,b) a*b 则语句 area=S(3,2); area的值为6。 答案:正确 题号:758 若有宏定义:#define S(a,b) t=a;a=b;b=t由于变量t没定义, 所以此宏定义是错误的。 答案:错误 题号:2158 #define 和printf 都不是C语句。 答案:正确 题号:5102 关系运算符<= 与 == 的优先级相同。 答案:错误 填空 ================================================== 题号:1076 表达式3.5 + 1 / 2的计算结果是_____。 答案: 空 1: 3.5 题号:551 请写出以下程序的输出结果_____。 main() { int a = 100; if( a > 100) printf(“%d\n”, a > 100); else printf(“%d\n”, a <= 100); } 答案: 空 1: 1 题号:3255 表达式(int)((double)(5/2)+2.5)的值是_____. 答案: 空 1: 4 题号:2472 阅读下面程序,程序执行后的输出结果为_____。 #include "stdio.h" main() { char a,b; for(a=′0′,b=′9′;a<b;a++,b--) printf("%c%c",a,b); printf("\n"); } 答案: 空 1: 0918273645 题号:937 以下程序段的输出结果是_____。 int i = 0, sum = 1; do { sum += i++; } while( i < 5); printf(“%d\n”, sum); 答案: 空 1: 11 题号:5213 以下程序段的输出结果是_____、_____、_____、_____、_____。 int x = 0177; printf(“x = %3d, x = %6d, x = %6o, x = %6x, x = %6u\n”, x, x, x, x, x); 答案: 空 1: x = 127 空 2: x = 127 空 3: x = 177 空 4: x = 7f 空 5: x = 127 题号:3210 以下程序的输出结果是_____。 main() { int a = 3, b = 2, c = 1; c -= ++b; b *= a + c; { int b = 5, c = 12; c /= b * 2; a -= c; printf(“%d, %d, %d, ”, a, b, c ); a += --c; } printf(“%d, %d, %d\n”, a, b, c); } 答案: 空 1: 2,5,1,2,3,-2 题号:4474 当计算机用两个字节存放一个整数时,其中能存放的最大十进制整数是_____、最小十进制整数是_____,它们的二进制形式是_____。 答案: 空 1: 65535 空 2: -32768 空 3: 1111 1111 1111 1111,1000 0000 0000 0000 题号:2791 结构化程序由_____、_____、_____三种基本结构组成。 答案: 空 1: 顺序 空 2: 条件分支 【或】 选择 空 3: 循环 题号:561 阅读下面程序,程序执行后的输出结果是_____。 #include "stdio.h" main() { int x,y,z; x = 1; y = 2; z = 3; if(x>y) if(x>z)printf("%d",x); else printf("%d",y); printf("%d\n",z); } 答案: 空 1: 3 程序设计 ================================================== 题号:2660 /*------------------------------------------------ 【程序设计】 -------------------------------------------------- 功能:计算出k以内最大的10个能被13或17整除的自然数之 和。(k〈3000)。 ------------------------------------------------*/ #include <stdio.h> #include"conio.h" void bky(); int fun(int k) { /**********Begin**********/ /********** End **********/ } main() { int m; printf("Enter m: "); scanf("%d", &m); printf("\nThe result is %d\n", fun(m)); bky(); } void bky() { FILE *IN,*OUT; int s ; int t; int o; IN=fopen("in.dat","r"); if(IN==NULL) { printf("Read FILE Error"); } OUT=fopen("out.dat","w"); if(OUT==NULL) { printf("Write FILE Error"); } for(s=1;s<=5;s++) { fscanf(IN,"%d",&t); o=fun(t); fprintf(OUT,"%d\n",o); } fclose(IN); fclose(OUT); } 示例代码: int a=0,b=0; while((k>=2)&&(b<10)) {if((k%13==0)||(k%17==0)) {a=a+k;b++;} k--; } return a; 题号:5854 C语言中不可以嵌套的是()。 A、选择语句 B、循环语句 C、函数调用 D、函数定义 答案: D 题号:1957 C语言中,逻辑"真"等价于 A、非零的整数 B、大于零的整数 C、非零的数 D、大于零的数 答案: C 题号:3786 用户定义的函数不可以调用的函数是()。 A、本文件外的 B、main函数 C、本函数下面定义的 D、非整型返回值的 答案: B 题号:1764 以下叙述中正确的是 ()。 A、C程序中注释部分可以出现在程序中任意合适的地方 B、分号是C语句之间的分隔符,不是语句的一部分 C、花括号“{“和”}”只能作为函数体的定界符 D、构成C程序的基本单位是函数,所有函数名都可以由用户命名 答案: A 题号:299 下面四个选项中,均是不合法的浮点数的选项是()。 A、-e3 .234 1e3 B、160. 0.12 e3 C、123 2e4.2 .e5 D、-.18 123e4 0.0 答案: C 题号:6131 假定所有变量均已正确定义,下列程序段运行后x的值是()。 k1=1; k2=2; k3=3; x=15; if(!k1) x--; else if(k2) x=4; else x=3; A、15 B、14 C、3 D、4 答案: D 题号:3208 若变量已正确定义,以下程序段的输出结果是 x=5.16894; printf(“%f\n”, (int)(x*1000+0.5)/(float)1000); A、5.17000 B、输出格式说明与输出项不匹配,输出无定值 C、5.168000 D、5.169000 答案: D 题号:5043 以下选项中合法的实型常数是()。 A、5E2.0 B、1.3E C、E-3 D、.2E0 答案: D 题号:5608 有以下程序 main() { int i; for(i=0; i<3; i++) switch(i) { case 1: printf("%d", i); case 2: printf("%d", i); default : printf("%d", i); } } 执行后输出结果是 A、011122 B、120 C、012020 D、012 答案: A 题号:572 对以下说明语句 int a[10]={6,7,8,9,10}; 的正确理解是()。 A、将5个初值依次赋给a[1]至a[5] B、将5个初值依次赋给a[6]至a[10] C、因为数组长度与初值的个数不相同,所以此语句不正确 D、将5个初值依次赋给a[0]至a[4] 答案: D 判断 ================================================== 题号:1325 若有说明int c;则while(c=getchar());是正确的C语句。 答案:正确 题号:3386 若有int ⅰ=10, j=0;则执行完语句 if (j=0)ⅰ+ +; else ⅰ- -; ⅰ的值为11。 答案:错误 题号:464 若 a=3,b=2,c=1 则关系表达式"(a>b)==c" 的值为"真"。 答案:正确 题号:2316 while和do…while循环不论什么条件下它们的结果都是相同的. 答案:错误 题号:2989 char c[]="Very Good"; 是一个合法的为字符串数组赋值的语句。 答案:正确 题号:5034 语句scanf("%7.2f",&a);是一个合法的scanf函数。 答案:错误 题号:2067 如果想使一个数组中全部元素的值为0,可以写成 int a[10]={0*10}; 答案:错误 题号:5263 x*=y+8 等价于 x=x*(y+8)。 答案:正确 题号:3862 如果函数值的类型和return语句中表达式的值不一致,则以 函数类型为准。 答案:正确 题号:3558 整数 -32100可以赋值给int型和long int型变量。 答案:正确 填空 ================================================== 题号:551 请写出以下程序的输出结果_____。 main() { int a = 100; if( a > 100) printf(“%d\n”, a > 100); else printf(“%d\n”, a <= 100); } 答案: 空 1: 1 题号:1575 对以下数学式,写出三个等价的C语言表达式是_____、_____、_____ 答案: 空 1: a/c/b 【或】 a/(b*c) 【或】 a/b/c 空 2: a/c/b 【或】 a/b/c 【或】 a/(b*c) 空 3: a/b/c 【或】 a/c/b 【或】 a/(b*c) 题号:1076 表达式3.5 + 1 / 2的计算结果是_____。 答案: 空 1: 3.5 题号:2758 若x为double型变量,请写出运算x = 3.2, ++x后表达式的值_____和变量的值_____。 答案: 空 1: 4.2 空 2: 4.2 题号:582 以下程序的执行结果是_____。 main() { int k=8; switch(k) { case 9: k+=1; case 10: k+=1; case 11: k+=1; break; default: k+=1; } printf("%d\n",k); } 答案: 空 1: 9 题号:2868 若要通过以下语句给a、b、c、d分别输入字符A、B、C、D,给w、x、y、z分别输入 10、20、30、40,正确的输入形式是_____。请用<CR>代表Enter键。 scanf(“%d%c%d%c%d%c%d%c”, &w, &a, &x,&b, &y, &c, &z, &d); 答案: 空 1: 10A20B30C40D<CR> 题号:4063 以下程序段的输出结果是_____、_____、_____、_____ double a = 513.789215; printf(“a = %8.6f, a = %8.2f, a = %14.8f, a = %14.8lf\n”, a, a, a, a); 答案: 空 1: a = 513.789215 空 2: a = 513.79 空 3: a = 513.78921500 空 4: a = 513.78921500 题号:5076 以下程序的输出结果是_____。 main() { int a=0; a+=(a=8); printf("%d\n",a); } 答案: 空 1: 16 题号:5410 以下程序的执行结果是_____。 main() { int a, b, *p = &a, *q = &b; a = 10; b = 20; *p = b; *q = a; printf(“a = %d, b = %d\n”, a, b); } 答案: 空 1: a = 20, b = 20 题号:6975 以下程序的输出结果是_____。 main() { int x = 2; while ( x-- ); printf(“%d\n”, x); } 答案: 空 1: -1 程序设计 ================================================== 题号:58 /*------------------------------------------------ 【程序设计】 -------------------------------------------------- 功能:将字符串中的小写字母转换为对应的大写字母, 其它字符不变。 ------------------------------------------------*/ #include "string.h" #include <stdio.h> void bky(); void change(char str[]) { /**********Begin**********/ /********** End **********/ } main() { void change(); char str[40]; gets(str); change(str); puts(str); bky(); } void bky() { FILE *IN,*OUT; char i[200]; IN=fopen("in.dat","r"); if(IN==NULL) { printf("Read FILE Error"); } OUT=fopen("out.dat","w"); if(OUT==NULL) { printf("Write FILE Error"); } fscanf(IN,"%s",i); change(i); fprintf(OUT,"%s\n",i); fclose(IN); fclose(OUT); } 示例代码: int i; for(i=0;str[i]!='\0';i++) if(str[i]>='a' && str[i]<='z') str[i]=str[i]-32; 题号:45 能正确表示逻辑关系:" a≥10或a≤0 "的C语言表达式是 A、a>=0 | a<=10 B、a>=10 or a<=0 C、a>=10 && a<=0 D、a>=10 || a<=0 答案: D 题号:53 若已定义x为int类型变量,下列语句中说明指针变量p的正确语句是()。 A、int *p=&x; B、int p=&x; C、*p=*x; D、int *p=x; 答案: A 题号:2244 字符串指针变量中存入的是 A、第一个字符 B、字符串 C、字符串的首地址 D、字符串变量 答案: C 题号:3722 下列字符数组长度为5的是 A、char c[10]= {'h', 'a', 'b', 'c', 'd'}; B、char b[]= {'h', 'a', 'b', 'c', 'd', '\0'}; C、char a[]={'h', 'a', 'b', 'c', 'd'}; D、char d[6]= {'h', 'a', 'b', 'c', '\0' }; 答案: C 题号:2703 从键盘上输入某字符串时,不可使用的函数是()。 A、getchar() B、scanf() C、fread() D、gets() 答案: A 题号:3402 以下对整型数组a的正确说明是: A、int n = 10, a[n]; B、 C、 D、int a(10); 答案: C 题号:130 若char a[10];已正确定义,以下语句中不能从键盘上给a数组的 所有元素输入值的语句是()。 A、scanf("%s",a); B、for(i=0;i<10;i++)a[i]=getchar(); C、a=getchar(); D、gets(a); 答案: C 题号:191 若有说明语句:char c='\72';则变量c()。 A、说明不合法,c的值不确定 B、包含3个字符 C、包含1个字符 D、包含2个字符 答案: C 题号:4539 以下程序的输出结果是 main() { int i = 1, j = 3; printf(“%d,”, i++); { int i = 0; i += j * 2; printf(“%d,%d,”, i, j ); } pritnf(“%d,%d\n”, i, j ); } A、1,6,3,2,3 B、2,7,3,2,3 C、1,7,3,2,3 D、2,6,3,2,3 答案: A 题号:300 以下对一维整型数组a的正确说明是()。 A、#define SIZE 10 (换行) int a[SIZE]; B、int a(10); C、int n; scanf("%d",&n); int a[n]; D、int n=10,a[n]; 答案: A 判断 ================================================== 题号:2691 若有 int i=10,j=2;则执行完i*=j+8;后ⅰ的值为28。 答案:错误 题号:2067 如果想使一个数组中全部元素的值为0,可以写成 int a[10]={0*10}; 答案:错误 题号:1118 函数调用语句:func(rec1,rec2+rec3,(rec4,rec5));中,含有的实参个数是5. 答案:错误 题号:1534 C语言所有函数都是外部函数. 答案:错误 题号:2158 #define 和printf 都不是C语句。 答案:正确 题号:6321 循环结构中的continue语句是使整个循环终止执行 答案:错误 题号:2583 在程序中定义了一个结构体类型后,可以多次用它来定义具有 该类型的变量。 答案:正确 题号:3386 若有int ⅰ=10, j=0;则执行完语句 if (j=0)ⅰ+ +; else ⅰ- -; ⅰ的值为11。 答案:错误 题号:2998 c程序总是从程序的第一条语句开始执行. 答案:错误 题号:5034 语句scanf("%7.2f",&a);是一个合法的scanf函数。 答案:错误 填空 ================================================== 题号:582 以下程序的执行结果是_____。 main() { int k=8; switch(k) { case 9: k+=1; case 10: k+=1; case 11: k+=1; break; default: k+=1; } printf("%d\n",k); } 答案: 空 1: 9 题号:5171 把a1、a2定义成单精度实型变量,并赋初值1的说明语句是_____。 答案: 空 1: float a1 = 1.0, a2 = 1.0; 题号:63 以下程序的输出结果是_____。 #define PR(ar) printf(“ar = %d “, ar) main() { int j, a[] = { 1, 3, 5, 7, 9, 11, 13, 15}, *p = a + 5; for(j = 3; j ; j--) switch( j ) { case 1: case 2: PR(*p++); break; case 3: PR(*(--p) ); } } 答案: 空 1: ar=9 ar=9 ar=11 题号:3255 表达式(int)((double)(5/2)+2.5)的值是_____. 答案: 空 1: 4 题号:1076 表达式3.5 + 1 / 2的计算结果是_____。 答案: 空 1: 3.5 题号:6547 当a = 1、b = 2、c = 3时,以下if语句执行后,a、b、c中的值分别为:_____、_____、_____ if(a > c) b = a; a = c; c = b; 答案: 空 1: 3 空 2: 2 空 3: 2 题号:3925 阅读下面程序,则执行后程序的结果为_____。 #include "stdio.h" main() { int a=0,b=0; while(a<15) a++; while(b++<15); printf("%d,%d\n",a,b); } 答案: 空 1: 15, 16 题号:4473 有以下程序段: 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 += d; _____; d = 1.0 / (k * (k + 1)); }while(_____ ); printf(“%f\n”, s); 答案: 空 1: d = 1.0 空 2: k++ 空 3: k <= n 题号:6975 以下程序的输出结果是_____。 main() { int x = 2; while ( x-- ); printf(“%d\n”, x); } 答案: 空 1: -1 题号:4423 下列程序的功能是输入一个整数,判断其是否是素数,若为素数输出1,否则输出0.请填空。 main() { int i, x, y=1; scanf("%d", &x); for(i=2; i<= _____; i++) if_____{ y=0; break;} printf("%d\n", y); } 答案: 空 1: x / 2 空 2: !(x % i) 【或】 x % i == 0 程序设计 ================================================== 题号:788 /*------------------------------------------------------- 【程序设计】 --------------------------------------------------------- 题目:用while语句求1~100的累计和。 -------------------------------------------------------*/ void bky(); int fun(int n) { /**********Begin**********/ /********** End **********/ } void main() { int sum = 0; sum=fun(100); printf ("sum = %d\n", sum); bky(); } void bky() { FILE *IN,*OUT; int i; int iIN,iOUT; IN=fopen("in.dat","r"); if(IN==NULL) { printf("Please Verify The Currernt Dir..it May Be Changed"); } OUT=fopen("out.dat","w"); if(OUT==NULL) { printf("Please Verify The Current Dir.. it May Be Changed"); } for(i=0;i<5;i++) { fscanf(IN,"%d",&iIN); iOUT=fun(iIN); fprintf(OUT,"%d\n",iOUT); } fclose(IN); fclose(OUT); } 示例代码: int i=1,sum=0; while(i<=n) { sum=sum+i; i++; } return sum; 题号:4662 变量p为指针变量,若p=&a,下列说法不正确的是()。 A、*(p++)==a++ B、&*p==&a C、(*p)++==a++ D、*&a==a 答案: A 题号:6651 C语言允许函数类型缺省定义,此时函数值隐含的类型是()。 A、long B、float C、int D、double 答案: C 题号:6993 若已定义x和y为double类型,则表达式x=1,y=x+3/2 的值是()。 A、1 B、2.0 C、2.5 D、2 答案: B 题号:6988 以下程序的输出结果是 main() { int a = 2, b =5; printf(“a=%%d,b=%%d\n”,a, b); } A、a=%2,b=%5 B、a=%%d,b=%%d C、a=%d,b=%d D、a=2,b=5 答案: C 题号:5659 若有定义int a[10],*p=a;,则p+5表示 A、元素a[5]的地址 B、元素a[6]的地址 C、元素a[6]的值 D、元素a[5]的值 答案: A 题号:6490 若有说明:int *p,m=5,n;以下正确的程序段是()。 A、scanf("%d",&n);*p=n; B、p=&n;*p=m; C、p=&n;scanf("%d",*p) D、p=&n;scanf("%d",&p); 答案: B 题号:6073 下列程序的输出结果为()。 main() {int m=7,n=4; float a=38.4,b=6.4,x; x=m/2+n*a/b+1/2; printf("%f\n",x); } A、28.000000 B、27.500000 C、28.500000 D、27.000000 答案: D 题号:401 以下所列的C语言常量中,错误的是()。 A、'\72' B、0xFF C、2L D、1.2e0.5 答案: D 题号:1684 int- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 大学 语言 考试 题库 答案

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【快乐****生活】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【快乐****生活】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文