C语言模拟考试
- 格式:docx
- 大小:22.90 KB
- 文档页数:14
c语言基础知识复习题模拟试题c语言是一种广泛使用的计算机编程语言,它以其高效性、灵活性和对硬件的直接控制能力而受到程序员的青睐。
为了帮助学习者复习和巩固c语言的基础知识,以下是一套模拟试题:一、选择题1. C语言中,以下哪个关键字用于声明一个变量?- A. var- B. define- C. int- D. declare2. 以下哪个是C语言的标准输入输出库?- A. <stdio.h>- B. <iostream.h>- C. <io.h>- D. <stream.h>3. 在C语言中,用于定义一个函数的关键字是:- A. function- B. def- C. void- D. return4. 下面哪个选项是C语言中正确的数组定义方式?- A. int array[5] = {1, 2, 3};- B. int [5] array = {1, 2, 3};- C. int array = {1, 2, 3};- D. int array[5] = 1, 2, 3;5. 在C语言中,哪个运算符用于计算两个数的和?- A. +- B. +=- C. ||- D. &&二、填空题1. 一个完整的C语言程序通常以______关键字开始,以main函数作为程序的入口点。
2. 在C语言中,______关键字用于定义一个函数的返回类型。
3. 在C语言中,______是基本数据类型之一,用于存储字符。
4. 一个C语言程序中,所有的函数调用必须在______函数中实现。
5. 在C语言中,______运算符用于连接字符串。
三、简答题1. 描述C语言中变量的作用域和生命周期。
2. 解释C语言中指针的概念以及如何声明和初始化一个指针。
3. 简述C语言中结构体的定义和使用。
四、编程题1. 编写一个C语言程序,实现输入两个整数,输出它们的和、差、积、商。
C语言模拟考试题1(共100分)一、单项选择题(每小题1分,共20分)1.若已定义x和y为double类型,则表达式x=1, y=x+5/2的值是(C )。
(A) 2 (B) 3 (C) 3.0 (D) 3.52.下列正确的字符串常量是( B )。
(A) abc (B) "abc" (C) 'abc' (D) 'a'3.以下程序运行后的输出结果是(B )。
#include<stdio.h>void main( ){ int p=10;printf("%d\n", (p?p/3:p%3));}(A) 2 (B) 3 (C) 20 (D) 错误信息4.在C语言中,short类型的数据长度为2个字节,则unsinged short类型数据的取值范围是( B )。
(A) 0至255 (B) 0至65535(C) -32768至32767 (D) -256至2555.在下列定义中,不正确的是( D )。
(A) int a[10]={12,23}; (B) char *b[10];(C) char s[20]= "china"; (D) double n=9,aa[n];6.有#define f(x) x+x及int a=3; 则执行printf("%d", f(a)*f(a)); 后的输出值为(B )。
(A) 0 (B) 15 (C) 36 (D) 97.使用fseek函数可以实现的功能是(D )。
(A) 文件的输出和输入(B) 文件的顺序读写(C) 文件的随机读写(D) 改变文件位置指针的当前位置8.以下关于静态局部变量的说法正确的是(D )。
(A) 静态局部变量的作用域为程序运行的全过程(B) 静态局部变量定义在函数体之外(C) 当某一函数被调用时,系统才为它的静态局部变量临时分配存储空间(D) 存储特性定义为static的局部变量是静态局部变量9.表达式sizeof('a'+10.0)的值为( C )。
c本科目一模拟考试题# C语言科目一模拟考试题一、选择题(每题2分,共20分)1. 在C语言中,以下哪个是合法的变量名?A. 2variableB. variable-nameC. variable_nameD. variable-name22. 以下哪个语句是正确的C语言赋值语句?A. int x = y = 10;B. int x = (y = 10);C. int x = y = 10;D. int x = 10, y;3. C语言中,以下哪个是正确的条件语句?A. if (x = 10)B. if x == 10C. if (x == 10)D. if (x == 10) then4. 在C语言中,以下哪个是正确的循环结构?A. do-whileB. while-doC. for-doD. do-until5. 以下哪个函数不能被用来进行字符串的复制?A. strcpyB. strcatC. strncpyD. memcpy6. 在C语言中,以下哪个是正确的数组声明?A. int array[10] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};B. int array[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};C. int array = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};D. int array[10];7. C语言中,以下哪个是正确的函数声明?A. int function(int x) { ... }B. int function(int) { ... }C. int function(int x) { ... }D. function(int x) { ... }8. 以下哪个是C语言中的关键字?A. autoB. registerC. voidD. integer9. 在C语言中,以下哪个操作符用于逻辑与?A. &&B. ||C. !D. =10. 以下哪个是C语言标准库中的数学函数?A. sqrtB. powerC. multiplyD. divide二、填空题(每空2分,共20分)11. 在C语言中,`printf`函数用于______数据。
c模拟考试试题及答案一、选择题(每题2分,共20分)1. 在C语言中,以下哪个是合法的变量名?A. 2variableB. variable2C. variable-twoD. variable_two答案:B2. 下列哪个选项不是C语言的基本数据类型?A. intB. floatC. stringD. double答案:C3. 以下代码段的输出结果是什么?```cint a = 10;printf("%d", a++);```A. 10B. 11C. 9D. 编译错误答案:A4. 在C语言中,以下哪个语句可以正确地实现数组元素的初始化?A. int arr[5] = {0, 1, 2};B. int arr[5] = {0, 1, 2, 3, 4};C. int arr[5] = {0};D. int arr[5] = {0, 1, 2, 3};答案:C5. 下列哪个是C语言中的控制语句?A. ifB. switchC. both A and BD. none of the above答案:C6. 在C语言中,以下哪个是正确的函数声明?A. void myFunction(int a, int b);B. int myFunction(int a, int b);C. Both A and BD. None of the above答案:C7. 以下哪个是C语言中的输入函数?A. printf()B. scanf()C. sprintf()D. fprintf()答案:B8. 以下代码段的输出结果是什么?```cfor (int i = 0; i < 5; i++) {printf("%d ", i);}```A. 0 1 2 3 4B. 4 3 2 1 0C. 1 2 3 4 5D. 编译错误答案:A9. 在C语言中,以下哪个是正确的字符串声明?A. char str[10] = "Hello";B. string str = "Hello";C. char str = "Hello";D. string str[10] = "Hello";答案:A10. 以下哪个选项是C语言中的逻辑运算符?A. &&B. ||C. Both A and BD. None of the above答案:C二、填空题(每空2分,共20分)1. 在C语言中,一个基本的数据类型可以是______、______或______。
C语言模拟试题选择题(1)1.若有下列定义:char c[3],*pc=c; 则对c数组元素地址的正确引用是:A. &c[3]B. pc[3]C. pc+2D. &c2.执行语句printf(“%d\n”,strlen(“abc\x41\n”));输出结果是:A. 5B. 7C. 3D. 43设有下列程序段,则scanf函数调用语句中对结构体变量成员的不正确引用为:struct student{char name[20];int age;char sex;}stu[5], *p;p=stu;A. scanf("%s", stu[0].name);B. scanf("%d", p->age);C. scanf("%c", &p->sex);D. scanf("%d", &stu[0].age);4若有定义:int b=7;float a=2.5,c=4.7;则表达式a+(int)(b/3*(int)(a+c)/2)%4的值为:A. 0B. 1C. 2D. 35若有定义:int a[3][4]={{1,2},{0},{4,6,8,10}};则执行此语句后,a[2][1]得到的初值是:A. 4B. 2C. 6D. 86若有int a=1,b=4,c=3,d=2;语句,则执行完该语句后,条件表达式a<b?a:c<d?c:d的值为:A. 1B. 2C. 3D. 47putchar()函数可以向终端输出一个:A. 整型变量表达式值B. 实型变量值C. 字符串D. 字符或字符型变量值8下列各语句中正确定义了数组的是:A. int a[5],b[2,3];B. char str(30);C. int x[];D. int x[5]={1,2,3};9将整型变量a、b中的较大值为变量c赋值,下列语句中正确的是:A. c= =(a>b)? a:b;B. c=(a>b)?a:b;C. c=if(a>b)a else b;D. (a<b)?c=a:c=b;10若已定义x和y为double类型,则表达式x=1,y=x+3/2的值是:A. 1B. 2C. 2.0D. 2.511以下语句或语句组中,能正确进行字符串赋值的是:A. char s[10]; s="right!";B. char *sp="right!";C. char s[10]; *s="right!"D. char *sp; *sp="right!";12若int a[ ][4]={1,2,3,4,5,6,7,8,9};则a数组第一维的大小是:A. 1B. 2C. 3D. 无确定值13若要求以下程序的输出结果是a=5,b=4,则输入数据的形式应该是:#include “stdio.h”main(){ int a,b;scanf("%d,b=%d",&a,&b);printf("a=%d,b=%d",a,b); }A. 5 4B. 5,4C. 5 b=414以下运算符中,优先级最高的是:A. <=B. &&C. =D. ++15以下对C语言函数的描述中,不正确的是:A. C语言中,函数可以嵌套定义B. C语言中,函数可以递归调用C. C语言中,函数可以没有返回值D. C语言程序由函数组成16若有以下定义和语句,则不能访问数组元素的表达式是:int i=2,*p,a[ ]={1,2,3,4,5};p=a;A. *(a+i)B. a[p-a]C. p+iD. *(&a[i])17C语言中NULL表示:A. 空指针B. 变量未找到C. 字符串的结束符D. 文件的结束符18以下程序的运行结果是:#include "stdio.h"main()if (m++>5) printf("%d\n",m);else printf("%d\n", m--);}A. 4B. 5C. 6D. 719以下程序的运行结果是:#include "stdio.h"main(){int a[][3]={{1,2,3},{4,5},{6},{0}};printf("%d,%d,%d\n",a[1][1],a[2][1],a[3][1]); }A. 3,2,1B. 5,0,0C. 4,1,0D. 1,5,020下面程序的运行结果是:#include "stdio.h"main(){int a[10]={2,4,6,8,10,12,14,16,18},*p;p=a+5;printf ("%d,%d\n",*(p+1),*++p+1); }A. 16,15B. 14,16C. 16,18D. 15,1421以下程序的输出结果是:#include "stdio.h"fun2( int a,int b){ int c;c=a*b%3;fun1(int a,int b){ int c;a+=a;b+=b;c=fun2(a,b);return c*c;}main(){ int x=11,y=19;printf("%d\n", fun1(x,y));}A. 3B. 5C. 4D. 622以下程序运行后的输出结果是?#include "stdio.h"#define SQR(x) x*xmain(){ int a,k=3;a=++SQR(k+1);printf("%d\n",a); }A. 7B. 8C. 9D. 1023执行语句for(i=10;i>0;i--);后,变量i的值为:A. 10B. 0C. 9D. 124下列i,j,k 均为整型变量,选项中不正确的C语言赋值语句是:A. i+1=k;B. i=j=k=1;C. i=j+=++k;D. j=i+1==i++;25设有语句int a[10]={0,l,2,3,4,5,6,7,8,9},*p=a;则不能对a数组元素的正确引用是:A. a[p-a]B. *(*(a+5))C. p[5]D. *(&a[5])26已有定义:char a[]="xyz",b[]={'x','y','z'};,以下叙述中正确的是:A. 数组a和b的元素个数相同B. a数组元素少于b数组C. a数组元素多于b数组D. 上述说法都不对27以写方式打开二进制文件my.dat的正确写法是:A. fopen(“my.dat”,”rb”);B. fopen(“my.dat”,”r”);C. fopen(“my.dat”,”wb”);D. fopen(“my.dat”,”w”);28对于定义struct sa{int x;float y;}data,*p=&data;请从下列候选答案中,选择变量data的x成员的正确引用:A. (*p).dataB. (*p).xC. p->data.xD. p.data.x29循环语句的循环体中执行continue语句,其作用是:A. 立即终止程序执行B. 继续执行continue语句之后的循环体各语句C. 结束本次循环D. 跳出循环30定义float a;现要从键盘输入a的数据,其整数位为3位,小数位为2位,则选用:A. scanf(“%f”,&a);B. scanf(“%5.2f”,a);C. scanf(“%6.2f”,&a);D.scanf(“%f”,a);选择题(2)1.以下叙述正确的是A. C语言程序是由过程和函数组成的B. C语言函数可以嵌套调用,例如:fun(fun(x))C. C语言函数不可以单独编译D. C语言中除了main函数,其他函数不可作为单独文件形式存在2以下关于C语言的叙述中正确的是A. C语言中的注释不可以夹在变量名或关键字的中间B. C语言中的变量可以在使用之前的任何位置进行定义C. 在C语言算术表达式的书写中,运算符两侧的运算数类型必须一致D. C语言的数值常量中夹带空格不影响常量值的正确表示3以下C语言用户标识符中,不合法的是A. _1B. AaBcC. a_bD. a-b4若有定义:double a=22;int i=0,k=18;,则不符合C语言规定的赋值语句是A. a=a++,i++;B. i=(a+k)<=(i+k);C. i=a%11;D. i=!a;5有以下程序#include<stdio.h>main() {char a,b,c,d; scanf("%c%c",&a,&b);c=getchar(); d=getchar();printf("%c%c%c%c\n",a,b,c,d);}当执行程序时,按下列方式输入数据:(<CR>代表回车)12<CR>34<CR>则输出结果是A. 1234B. 12C. 123D. 12346以i关于C语言数据类型使用的叙述中错误的是A. 若要准确无误差的表示自然数,应使用整数类型B. 若要保存带有多位小数的数据,应使用双精度类型C. 若要处理如“人员信息”等含有不同类型的相关数据,应自定义结构体类型D. 若只处理“真”和“假”两种逻辑值,应使用逻辑类型7若a是数值类型,则逻辑表达式(a==1)||(a!=1)的值是A. 1B. 0C. 2D. 不知道a的值,不能确定8以下选项中与if(a==1)a=b; else a++;语句功能不同的switch语句是A. switch(a){case:a=b;break;default:a++;}B. switch(a==1){case 0:a=b;break;case 1:a++;}C. switch(a){default:a++;break;case 1:a=b;}D. switch(a==1){case 1:a=b;break;case 0:a++;}9有如下嵌套的if语句if (a<b)if(a<c)k=a;else k=c;elseif(b<c) k=b;else k=c;10以下选项中与上述if语句等价的语句是A. k=(a<b)?a:b;k=(b<c)?b:c;B. k=(a<b)?((b<c)?a:b):((b>c)?b:c);C. k=(a<b)?((a<c)?a:):((b<c)?b:c)D. k=(a<b)?a:b;k=(a<c)?a:c;11有以下程序#include<s七dio.h>main(){int i,j,m=1;for(i=1;i<3;i++){for(j=3;j>0;j--){if(i*j)>3)break;m=i*j;}}printf("m=%d\n",m);}程序运行后的输出结果是A. m=6B. m=4C. m=2D. m=512有以下程序#include<stdio.h>main(){int a=l,b=2;for(;a<8;a++) {b+=a;a+=2;}printf("%d,%d\n",a,b);}程序运行后的输出结果是A. 9,18B. 8,11C. 7,11D. 10,1413有以下程序,其中k的初值为八进制数#include <stdio.h>main(){int k=011;printf("%d\n",k++);}程序运行后的输出结果是A. 12B. 11C. 10D. 914以下关于return语句的叙述中正确的是A. 一个自定义函数中必须有一条return语句B. 一个自定义函数中可以根据不同情况设置多条return语句C. 定义成void类型的函数中可以有带返回值的return语句D. 没有return语句的自定义函数在执行结束时不能返回到调用处15下列语句组中,正确的是A. char *s;s="Olympic";B. char s[7];s="Olympic";C. char *s;s={"Olympic"};D. char s[7];s={"Olympic"};16下列选项中,能正确定义数组的语句是A. int num[0..2008];B. int num[];C. int N=2008;int num[N];D. #define N 2008int num[N];17有以下程序#include <stdio.h>void fun(char *c,int d){ *c=*c+1;d=d+1;printf("%c,%c,",*c,d);}main(){char b='a',a='A';fun(&b,a);printf("%e,%e\n",b,a);}程序运行后的输出结果是A. b,B,b,AB. b,B,B,AC. a,B,B,aD. a,B,a,B18若有定义int(*Pt)[3];,则下列说法正确的是[D]A. 定义了基类型为int的三个指针变量B. 定义了基类型为int的具有三个元素的指针数组ptC. 定义了一个名为*pt、具有三个元素的整型数组D. 定义了一个名为pt的指针变量,它可以指向每行有三个整数元素的二维数组19设有定义double a[10],*s=a;,以下能够代表数组元素a[3]的是A. (*s)[3]B. *(s+3)C. *s[3]D. *s+320有以下程序#include<stdio.h>main(){int a[5]={1,2,3,4,5},b[5]={0,2,1,3,0},i,s=0;for(i=0;i<5;i++) s=s+a[b[i]];printf("%d\n",s);}程序运行后的输出结果是A. 6B. 10C. 11D. 1521有以下程序#include <stdio.h>main(){int b[3][3]={0,1,2,0,1,2,0,1,2},i,j,t=1;for(i=0;i<3;i++)for(j=i;j<=1;j++) t+=b[i][b[j][i]];printf("%d\n",t);}程序运行后的输出结果是A. 1B. 3C. 2D. 522若有以下定义和语句char s1[10]="abcd!",*s2="\n123\\";printf("%d %d\n", strlen(s1),strlen(s2));则输出结果是A. 5 5B. 10 5C. 10 7D. 5 823有以下程序#include <stdio.h>#define N 8void fun(int *x,int i){*x=*(x+i);}main(){int a[N]={1,2,3,4,5,6,7,8},i;fun(a,2);for(i=0;i<N/2;i++)printf("%d",a[i]);printf("\n");}程序运行后的输出结果是A. 1313B. 2234C. 3234D. 123424有以下程序#include <stdio.h>int f(int t[],int n);main(){int a[4]={1,2,3,4},s;s=f(a,4); printf("%d\n",s);}int f(int t[],int n){ if(n>0) return t[n-1]+f(t,n-1); else return 0;}程序运行后的输出结果是A. 4B. 10C. 14D. 625有以下程序#include <stdio.h>int fun(){ static int x=1;x=x*2; return x;}main(){int i,s=1;for(i=1;i<=2;i++) s=fun();printf("%d\n",s);}程序运行后的输出结果是A. 0B. 1C. 4D. 826有以下程序#include <stdio.h>#define SUB(a) (a)-(a)main(){ int a=2,b=3,c=5,d;d=SUB(a+b)*c;printf("%d\n",d);}程序运行后的输出结果是A. 0B. -12C. -20D. 1027设有定义:struct complex{ int real,unreal;} data1={1,8},data2;则以下赋值语句中错误的是A. data2=data1;B. data2=(2,6)C. data2.real=data1.real;D. data2.real=data1.unreal;28有以下程序#include <stdio.h>#include <string.h>struct A{ int a; char b[10]; double c;};void f(struct A t);main(){ struct A a={1001,"ZhangDa",1098.0};f(a); printf("%d,%s,%6.1f\n",a.a,a.b,a.c);}void f(struct A t){ t.a=1002; strcpy(t.b,"ChangRong");t.c=1202.0;}程序运行后的输出结果是A. 1001,zhangDa,1098.0B. 1002,changRong,1202.0C. 1001,ehangRong,1098.0D. 1002,ZhangDa,1202.029有以下定义和语句struct workers{ int num;char name[20];char c;struct{int day; int month; int year;} s;};struct workers w,*pw;pw=&w;能给w中year成员赋1980的语句是A. *pw.year=1980;B. w.year=1980;C. pw->year=1980;D. w.s.year=1980;30有以下程序#include <stdio.h>main(){ int a=2,b=2,c=2;printf("%d\n",a/b&c);}程序运行后的输出结果是A. 0B. 1C. 2D. 331有以下程序#include <stdio.h>main(){ FILE *fp;char str[10];fp=fopen("myfile.dat","w");fputs("abc",fp);fclose(fp);fopen("myfile.data","a++");fprintf(fp,"%d",28);rewind(fp);fscanf(fp,"%s",str); puts(str);fclose(fp);}程序运行后的输出结果是A. abcB. 28cC. 28D.因类型不一致而出错选择题(3)1、以下叙述中正确的是:A. C程序中的注释只能出现在程序的开始位置和语句的后面B. C程序书写格式严格,要求一行内只能写一个语句C. C程序书写格式自由,一个语句可以写在多行上D. 用C语言编写的程序只能放在一个程序文件中2以下叙述中正确的是:A. C程序中的注释只能出现在程序的开始位置和语句的后面B. C程序书写格式严格,要求一行内只能写一个语句C. C程序书写格式自由,一个语句可以写在多行上D. 用C语言编写的程序只能放在一个程序文件中3以下选项中不属于字符常量的是:A. ′C′B. "C"C. ′\xCC′D. ′\072′4设变量已正确定义并赋值,以下正确的表达式是:A. x=y*5=x+zB. int(15.8%5)C. x=y+z+5,++yD. x=25%5.05以下定义语句中正确的是:A. int a=b=0;B. char A=65+1,b=′b′;C. float a=1,*b=&a,*c=&b;D. double a=0.0;b=1.1;6有以下程序段char ch; int x;ch=′A′; x=20;printf("%c,%d,",ch,ch,x); printf("x=%d\n",x,ch);已知字符a的ASCII码值为97,则执行上述程序段后输出结果是:A. 因变量类型与格式描述符的类型不匹配输出无定值B. 输出项与格式描述符个数不符,输出为零值或不定值C. A,65,12x=20D. A,65,x=207已知字母A的ASCII码值为65,若变量kk为char型,以下不能正确判断出kk中的值为大写字母的表达式是:A. kk>=′A′&& kk<=′Z′B. !(kk>=′A′||kk<=′Z′)C. (kk+32)>=′a′&&(kk+32)<=′Z′D. isalpha(kk)&&(kk<91)8当变量c的值不为2、4、6时,值为"真"的表达式是:A. (c==2)||(c==4)||(c==6)B. (c>=2&& c<=6)&&((c==3)||(c==5))C. (c>=2&&c<=6)&&!(c%2)D. (c>=2&& c<=6)&&(c%2!=1)9以下不构成无限循环的语句或语句组是:A. n=0; do{++n;}while(n<=0);B. n=0; while(1){n++;}C. n=10; while(n);{n--;}D. for(n=0,i=1; ;i++)n+=i;10以下错误的定义语句是:A. int x[][3]={{0},{1},{1,2,3}};B. int x[4][3]={{1,2,3},{1,2,3},{1,2,3},{1,2,3}};C. int x[4][]={{1,2,3},{1,2,3},{1,2,3},{1,2,3}};D. int x[][3]={1,2,3,4};11设有如下程序段char s[20]="Beijing",*p;p=s;则执行p=s;语句后,以下叙述正确的是:A. 可以用*p表示s[0]B. s数组中元素的个数和p所指字符串长度相等C. s和p都是指针变量D. )数组s中的内容和指针变量p中的内容相同12若有定义:int x[4][5];,以下选项中对x数组元素正确引用的是:A. x[4][0]B. x[3][5]C. x[4][4]D. x[2>4][!3]13有定义语句:char str[10];,若要从终端给str输入8个字符,错误的输入语句是:A. gets(&s[0]);B. scanf("%s",s+1);C. gets(s);D. scanf("%s",s[1]);14以下叙述中错误的是:A. 在程序中凡是以"#"开始的语句行都是预处理命令行B. 预处理命令行的最后不能以分号表示结束C. #define MAX是合法的宏定义命令行D. C程序对预处理命令行的处理是在程序执行的过程中进行的15以下结构体类型说明和变量定义中正确的是A. typedef strct{int n; char c;}REC;REC t1,t2;B. typedef strct{int n; char c;};REC t1,t2;C. strct{int n; char c;}REC;REC t1,t2;D. typedef strct REC;{int n=0; char c;}t1,t2;16以下叙述中错误的是:A. gets函数用于从终端读入字符串B. getchar函数用于从磁盘文件读入字符C. fputs函数用于把字符串输出到文件D. fwrite函数用于以二进制形式输出数据到文件17变量a中的数据用二进制表示的形式是01011101,变量b中的数据用二进制表示的形式是11110000。
C语言模拟题〔一〕一、选择题1、以下字符中不是转义字符的是〔A 〕。
A、'\c'B、'\b'C、'\\'D、'\a'2、设a=12,且a定义为整型变量。
执行语句a+=a-=a*=a;后a的值为〔A〕。
A、0B、144C、132D、123、已定义float x=1.25,y=3.37;根据下面的输出结果,正确的输出语句是(C ).y+x=4.62,y-x=2.12A、printf("y+x=%6.2f,y-x=%6.2f\n",y+x,y-x);B、printf("y+x=%f,y-x=%f\n",y+x,y-x);,lC、printf("y+x=%.2f,y-x=%.2f\n",y+x,y-x);D、printf("y+x=%5.2f,y=%5.2f\n",y+x,y-x);4 、执行下面程序段后,b的值为(A ).int s=35;char t='A';int b;b=((s&&4)&&(t<'a'));A、1B、3C、2D、05 k是整型,那么以下程序段的执行结果是:(B )k=-3;if(k<=0) printf("####")else printf("&&&&");A、####B、有语法错误,无结果C、&&&&D、####&&&&6 设j和k都是int类型,那么下面的for循环语句〔D〕。
for(j=0,k=0;j<=9&&k!=876;j++) scanf("%d",&k);A、最多执行9次B、是无限循环C、循环体一次也不执行D、最多执行10次7 以下正确的描述是(A ).A、只能在循环体内和switch语句内使用break语句B、continue语句的作用是终止整个循环的执行C、从多层嵌套的外层循环中退出时,只能使用goto语句D、在循环体内使用break和continue语句的作用一样8 以下能对一维数组a进展正确初始化的语句是〔B〕。
C语言程序设计模拟考试试卷及答案(一)一、单项选择题1.一个C程序的执行是从( )。
A) 本程序的main函数开始,到main函数结束B) 本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C) 本程序的main函数开始,到本程序文件的最后一个函数结束D) 本程序文件的第一个函数开始,到本程序main函数结束2.下列选项中,不能用作标识符的是( )。
A) _1234_ B) _1_2 C) int_2_ D) 2_int_3.以下定义语句中正确的是( )。
A) char a='A'b='B'; B) float a=b=10.0;C) int a=10,*b=&a; D) float *a,b=&a;4.设有以下定义:#define d 2int a=0; double b=1.25; char c=’A’;则下面语句中错误的是( )。
A) a++; B) b++ C) c++; D) d++;5.以下4个选项中,不能作为一条C语句的是( )。
A) {;} B) a=0,b=0,c=0;C) if(a>0); D) if(b==0) m=1;n=2;6.有以下定义语句 double a,b; int w; long c;若各变量已正确赋值,则下列选项中正确的表达式是( )。
A) a=a+b=b++ B) w%(int)a+b)C) (c+w)%(int)a D) w=a==b;7.设有定义:int n=0,*p=&n,**q=&p;则以下选项中,正确的赋值语句是( )。
A) p=1; B) *q=2; C) q=p; D) *p=5;8.设有定义:int a,*pa=&a; 以下scanf语句中能正确为变量a读入数据的是( )。
A) scanf(“%d”,pa) ; B) scanf(“%d”,a) ;C) scanf(“%d”,&pa) ; D) scanf(“%d”,*pa);9.若有说明:char*language[]={”FORTRAN”,”BASIC”,”PASCAL”,”JAVA”,”C ”};则表达式*language[1]>*language[2]比较的是()。
c语言模拟考试题及答案一、选择题(每题2分,共20分)1. 下列哪个选项是C语言中的合法标识符?A. 2variableB. variable2C. variable-2D. variable$2答案:B2. C语言中,哪个关键字用于声明一个变量?A. defineB. varC. letD. int答案:D3. 下列哪个选项是C语言中的整型常量?A. 0x1AB. 1.23C. 1e2D. "123"答案:A4. 在C语言中,哪个函数用于计算字符串的长度?A. strlen()B. length()C. size()D. lengthof()5. 下列哪个选项是C语言中的逻辑运算符?A. &&B. ||C. !D. A和B答案:D6. C语言中,哪个关键字用于声明一个函数?A. functionB. defC. defineD. void答案:D7. 在C语言中,哪个函数用于将字符串复制到另一个字符串?A. strcpy()B. copy()C. duplicate()D. copystr()答案:A8. 下列哪个选项是C语言中的浮点型常量?A. 3.14B. 3.14e2C. 3.14E2D. A和C答案:D9. 在C语言中,哪个关键字用于声明一个数组?B. listC. tableD. int[]答案:D10. 下列哪个选项是C语言中的位运算符?A. &B. |C. ^D. A和B答案:D二、填空题(每题2分,共20分)1. 在C语言中,使用________关键字可以定义一个宏。
答案:#define2. C语言中,使用________函数可以将一个浮点数转换为字符串。
答案:sprintf3. 在C语言中,使用________关键字可以跳过当前循环的剩余部分,继续下一次循环。
答案:continue4. C语言中,使用________关键字可以立即退出循环。
一、选择题1.有如下程序:main(){ int a=1,b=2;a+=b;b=a-b;a-=b;printf("%d,%d\n",a,b);}该程序的输出结果是【】。
A.1,2 B.2,1 C.2,2 D.3,22.有以下程序: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.012 C.012020 D.120。
3.有以下程序:main(){ int a=5,b=4,c=6,d;printf("%d\n",d=a>b?(a>c?a:c):(b));}执行后输出结果是【】。
A.5 B.4 C.6 D.不确定4.有如下程序:f(int a){ int b=0; static int c=3;b++;c++;return(a+b+c) ;}main(){ int a=2,i;for(i=0;i<3;i++)printf("%2d",f(a));}该程序的输出结果是【】。
A.7 7 7 B.7 7 8 C. 7 8 9 D.7 8 85.有如下程序段:main(){ int a,b,c=246;a=c/100%9;b=(-1) && (-1);printf("%d,%d\n",a,b);}输出结果是【】。
A.2,1 B. 3,2 C. 4,3 D. 2,-16.有如下程序:main(){ char str[ ][20]={"Hello","Beijing"}, *p=str;printf("%d\n",strlen(p+22));}该程序的输出结果是【】。
1.设int类型的数据长度为2字节,则int类型数据的取值范围是(B )A、0~255B、-32768~32767C、-256~255D、0~655352.若有说明:int a[3][4]={0};则下面正确的叙述是( D )。
A、只有元素a[0][0]可得到初值0B、此说明语句不正确:。
C、数组a中各元素都可得到初值,但其值不一定为0。
D、数组a中每个元素均可得到初值0。
3.下列运算符中优先级最高的是(B )A、<B、+C、&&D、!=4.设有说明: char w; int x; f1oat y; double z;则表达式w* x+z-y值的数据类型为 DA、floatB、charC、intD、double5.已知字母A的ASCII码为十进制数65,且c2为字符型,则执行语句c2='A'十'6'-'3';后,c2中的值为(B)A、DB、68C、不确定的值D、C6.在一个源文件中定义的全局变量的作用域为(A )A、本文件的全部范围B、本程序的全部范围C、从定义该变量开始至本文件结束D、本函数的全部范围7.以下正确的叙述是( C )A、在C程序中,每行中只能写-条语句B、若a是实型变量,C程序中允许赋值a=10,因此实型变量中允许存放整型数C、在C程序中,无论是整数还是实数,都能被准确无误地表示D、在C程序中,%是只能用于整数运算的运算符8.以下定义语句中,错误的是(D )A、int a[ ]={1,2};B、int a[ ][3]={1,2,3,4,5};C、char s[10]="test";D、int n=5,a[n];9.一个C程序的执行是从(A )A、本程序的main函数开始,到main函数结束B、本程序文件的第-个函数开始,到本程序文件的最后-个函数结束C、本程序的main函数开始,到本程序文件的最后-个函数结束D、本程序文件的第-个函数开始,到本程序main函数结束10.在C语言中(以16位PC机为例),5种基本数据类型的存储空间长度的排列顺序为( A)A、char<int <1ong int<=float<doubleB、char=int<1ong int<=float<doubleC、char< int <1ong int=float=doubleD、char=int =1ong int<=float<double11.在C语言中, char型数据在内存中的存储形式是(D )A、补码B、反码C、原码D、ASCII码12.一个C语言程序是由( A )A、一个主程序和若干子程序组成B、函数组成C、若干过程组成D、若干子程序组成13.以下能对-维数组a进行正确初始化的语句是( C )。
A、int a[10]=(0,0,0,0,0)B、int a[10]={}C、int a[ ]={0};D、int a[10]={10*1}14.若double x=2,y;则执行y=x+3/2;后,y的值是( C )A、3.500000B、3.000000C、2.000000D、315.有输入语句: scanf("a= %d,b= %d,c=%d",&a,&b,&c);为使变量a的值为1,b为3,c为2,从键盘输入数据的正确形式应当是(B)A、132(回车)B、1,3,2(回车)C、a=1b=3c=2(回车)D、a=1,b=3,c=2(回车)16.C语言中的标识符只能由字母、数字和下划线三种字符组成,且第-个字符(C )A、必须为字母B、必须为下划线C、必须为字母或下划线D、可以是字母,数字和下划线中任-种字符17.假设所有变量均为整型,则表达式(a=2,b=5,b++,a+b)的值是(B )A、7B、8C、6D、218.sizeof(float)是(C )A、一个双精度型表达式B、一个整型表达式C、一种函数调用D、一个不合法的表达式19.若x,i,j和k都是int型变量,则执行下面表达式后x的值为( C ) x=(i=4,j=16,k=32)A、4B、16C、32D、5220.C语言程序的基本单位是(C )A、程序行B、语句C、函数21.下面正确的字符常量是(C )A、"a"B、'\\''C、'W'D、''22.若有定义:int a=7;float x=2.5,y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值是( A )A、2.500000B、2.750000C、3.500000D、0.00000023.以下符合C语言语法的赋值表达式是( B )A、d=9+e+f=d+9B、d=9+e,f=d+9C、d=9+e,e++,d+9D、d=9+e++=d+724.已知各变量的类型说明如下int k,a,b;unsigned long w= 5;double x=1.42;则以下不符合C语言语法的表达式是(D )A、x%(-3)C、k=(a=2,b=3,a+b)D、a+= a-=(b=4)*(a=3)25.C语言规定:在一个源程序中,main函数的位置(B )A、必须在最开始B、必须在系统调用的库函数的后面C、可以任意D、必须在最后26.while语句的特点是(B )A、先执行后判断B、while(表达式)后面不需要写分号,否则循环没有循环体。
C、不管条件是否成立,循环体至少被执行一次。
D、循环体中可以有break语句,但是不可以有continue语句。
27.int型变量在内存中占2个字节,若int a[10]={0,2,4};则数组a所占字节数是(D)A、3个字节B、6个字节C、10个字节D、20个字节28.表达式( A )的值是整数类型。
A、15/2C、25/5.0D、0.5*1029.以下叙述不正确的是( D )A、一个C源程序可由一个或多个函数组成B、一个C源程序必须包含一个main函数C、C程序的基本组成单位是函数D、在C程序中,注释说明只能位于一条语句的后面30.若有说明语句:char c='\72'则变量c(D )A、包含1个字符B、包含2个字符C、包含3个字符D、说明不合法,c的值不确定31.以下不正确的叙述是( D )A、在C程序中,逗号运算符的优先级最低B、在C程序中,APH和aph是两个不同的变量C、若a和b类型相同,在执行了赋值表达式a=b后b中的值将放人a中,而b中的值不变。
D、当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值。
32.设以下变量均为int类型,则值不等于7的表达式是( C )A、(x= y= 6, x+y,x+1)B、(x= y= 6,x+y,y+1)C、(x= 6,x+1,y= 6,x+y)D、(y=6,y+1,x = y,x+1)33.在C语言中,下面字符串能用作变量名的是( D )A、a+bB、autoC、2-andD、a234.阅读以下程序,当输入数据的形式为25,13,10<CR>正确的输出结果为(A)main(){int x,y,z ;scanf("%d%d%d",&x,&y,&z );printf("x+y+z=%d\n ",x+y+z);}A、x+y+z=48B、x+y+z=35C、x+z=35D、不确定值35.下列运算符中优先级最低的是(A)A、,B、&&C、+D、!=36.若有说明:int a[3][4]; 则对a数组元素的正确引用是( C )。
A、a[2][4]B、a[1,3]C、a[1+1][0]D、a(2)(1)37.若有以下定义:int x=10,y=3,z; 则语句:printf("%d\n",z=(x%y,x/y));的输出结果为( D )A、1B、0C、2D、338.以下描述中正确的是:( C )。
A、由于do-while循环中循环体语句只能是-条可执行语句,所以循环体内不能使用复合语句B、do-while循环由do开始,用while结束,在while(表达式)后面不能写分号C、在do-while循环体中,-定要有能使while后表达式值变为零("假")的操作D、do-while循环中,根据情况可以省略while39.设变量n为f1oat类型,m为int类型,则以下能实现将n中的数值保留小数点后两位,第三位进行四舍五人运算的表达式是(D )A、n=(n*100+0.5)/100.0B、m=n*100+0.5 ,n= m/100.0C、n=n*100+0.5/100.0D、n=(n/100+0.5)*100.040.设C语言中,-个int型数据在内存中占2个字节,则unsigned int型数据的取值范围为:( C )A、0~255B、0~32767C、0~65535D、0~214748364741.若有以下定义,则能使值为3的表达式是:( D )int k= 7,x =12;A、x%=(k%= 5)B、x%=(k-k%5)C、x%=k- k%5D、(x%=k)-(k%=5)42.下面程序的运行结果是( B )。
#include<stdio.h >main(){int num= 0;while(num<= 2){num++;printf ("%d\n", num);}}A、234B、123C、12D、143.下面四个选项中,均是不合法的用户标识符的选项是( B )A、P_0、A、doB、float、1a0、-AC、goto、b-a、intD、-123、temp、INT44.以下说法中正确的是(C )A、C语言程序总是从第一个函数开始执行B、C语言程序中,要调用的函数必须在main()函数中定义C、C语言程序总是从main( )函数开始执行D、C语言程序中的main( )函数必须放在程序的开始部分45.下面程序的输出结果是(D )。
void main(){int i=10;switch(i){case 9:i+=1;case 10:i+=1;case 11:i+=1;case 12:i+=1;}printf(“i=%d\n”,i);}A、10B、11C、12D、1346.表达式18/4*sqrt(4.0)/8值的数据类型为:( B )A、intB、floatC、doubleD、不确定47.下面四个选项中,均是C语言关键字的选项是(B )A、auto、enum、includeB、switch、typedef、continueC、signed、union、scanfD、if、struct、type48.break语句的作用是(D )A、结束本次循环,进行下一次循环B、break语句被执行且循环体中其后的其他语句都执行后,循环终止C、break语句和continue语句作用相同D、break语句被执行后,循环体中其后的语句都将不被执行,循环直接终止49.以下对二维数组a的正确说明是( C )。