- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
若打入命令行:li how are you?(回车)
结果: argc=4
how are you?
1.有以下程序 #include <string.h> main(int argc ,char *argv[ ]) { int i,len=0; for(i=1;i<argc;i+=2) len+=strlen(argv[i]); printf("5d\n",len); }
C)int num[0..100]; D) int N=100;
2. 以下不能正确定义二维数组的选项是( )
A)int a[2][2]={{1},{2}}; B)int a[][2]={1,2,3,4};
C)int a[2][2]={{1}, 2,3}; D)int a[2][]={{1,2},{ 3,4}}; 3.以下程序运行后的输出结果是 ( ) main( ) { int i,j,a[][3]={1,2,3,4,5,6,7,8,9};
for(i=j=0;s[i]!= \0 ;i++)
if( 填空 ) { d[j]=s[i]; j++; }
d[j]= \0 ;
puts(d);}
指 针
1.指针:即地址 一个变量的地址称为该变量的指针。
2.指针变量:专门用于存储其它变量地址的变量, 3.定义:类型名 *指针变量1 [, *指针变量2……];
1.以下变量名全部合法的是( )。
A) ABC、L10、a_b、_a1 B) ?123、print、*P、a+B C) _12、ZHANG、*P、11f D) Li_Li、P、for、t101
2.设有说明: char w; int x; float y; double z; 则表达式 w * x + z -y 值的数据类型为 ( )。
A)1 65 1 6.5
C)1 65 1.0 6.5
B)1 65 1.5 6.5
D)2 65 1.5 6.5
第二块
带参数main函数(2分)
1.主函数main( )的有参形式 main(int argc, char *argv[ ] ) { … …}
2.实参的来源 运行带形参的主函数,必须在操作系统提示符下,输入主函 数所在的可执行文件名,以及所需的实参,然后回车。 命令行的一般格式为: C:\可执行主文件名实参1[ 实参2……]
main() { int x=10,y=9; printf(“%d %d %d\n”,x--,--y,y/x); A) 10 10 0.9 B) 9 9 0 } D) 10 8 0
C) 9 10 0.9
5.已有定义int x; float y; 且执行scanf(“%3d%f”,&x,&y); 语句时,输入数据12345 678<回车>,则x的值为【1】, y的值为【2】。 【1】A)12345 【2】A)无定值 B)123 B)45.000000 C)45 D)345
A)s=1.0; B)for(n=10;n>1;n--)
C)s=s+1/n;
D)printf("%6.4f\n", s);
11.有以下程序
main( ) { int a; char c=10; float f=100.0; double x; a=f/=c*=(x=6.5); printf("%d %d %3.1f %3.1f\n",a,c,f,x);} 程序运行后 的输出结果是( )
4.初始化(即赋初值,将地址值送给指针变量) 方法1: 指针变量=&变量
int t,*p; p1=&t;
p=&t; p2= p1;
方法2: int t,*p1,*p2;
方法3:给指针变量赋空值(须添加预定义命令行 #include “stdio.h”。) 如:int *ptr;
ptr=NULL; 或ptr=0;或 ptr=„\0‟;
case 3: putchar (c+3); default: putchar (c+2); break; A) 668977 B) 668966 } printf("\n"); } D) 6688766
C) 66778777
8.有以下程序 main( ) { int k=4,n=0; for( ; n<k; n++) {if(n%3!=0) continue;
A)-1 B)-3 C)-5 D)0
10.要求以下程序的功能是计算:s= 1+1/2+1/3+……+1/10
main( ) { int n; float s; s=1.0; for(n=10;n>1;n--) s=s+1/n; printf("%6.4f\n",s);}
程序运行后输出结果错误,导致错误结果的程序行是( )
for(i=0;i<3;i++)
for(j=i+1;j<3;j++) a[j][i]=0; for(i=0;i<3;i++) { for(j=0;j<3;j++) printf("%d ",a[i][j]); printf("\n");}}
4.有以下程序段 int a[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],b; b=p[5]; b中的值是() A)5 B)6 C)8 D)9 5.有以下程序 main( ) { char a[]="abcdefg",b[10]="abcdefg"; printf("%d %d\n",sizeof(a),sizeof(b)); } 执行后输出结果是() A)7 7 B)8 8 C)8 10 D)10 10 6.有以下定义 #include <stdio.h> char a[10],*b=a; 不能给数组a输入字符串的语句是() A)gets(a) B)gets(a[0]) C)gets(&a[0]); D)gets(b); 7.main( ) { char *p[10]={"abc","aabdfg","dcdbe","abbd","cd"}; printf("%d\n",strlen(p[4])); } 执行后输出结果是() A)2 B)3 C)4 D)5
7. 若运行以下程序时,从键盘输入2473<CR>, 则运行结果是____. #include <stdio.h> main( )
{
int c;
while((c=getchar())!='\n') switch(c-'') { case 0; case 1: putchar (c+4);
case 2: putchar (c+4); break;
6.指针的移动和比较
对指向连续存储区域如数组 的指针变量(p1,p2)进行 算术运算和关系运算。
1)移动(算术运算),包括: · p1±n:将指针从当前位置向前(+n)或回退 (-n)n个单位长度,而不是n个字节。 · p1++/++p1和p1--/--p1是p1±n的特例(n=1)。 · p1-p2:两指针之间的单位长度个数,而不是 指针的地址之差。 2)比较(关系运算) 如: 当指针p1所指地址在指针p2所指地址之前,则 p1〈p2的值为1。
两参数类型固定,但名字可自定义
注:在TC的集成环境下,也可直接利用Options |
ArgCuments 项,输入主函数所需要的实参:只须输入各参 数(相邻参数间用空格分开),可执行文件名可省略。
例:main(int argc,char *argv[ ])
{int i; printf(“argc=%d\n”,argc); for(i=1;i<argc;i++) printf(“%s”,argv[i]); printf(“\n”);} 命名为li.c,F9编译连接后生成li.exe
8.以下程序的功能是将字符串s中的数字字符放入d数组中。例 如,输入字符串:abc123edf456gh,最后输出d中的字符串执 行程序后输出:123456。请填空。 #include <stdio.h>
#include <string.h>
main( ) { char s[80], d[80]; int i,j; gets(s);
a[0]=1; a[1]=2; a[2]=3; a[3]=4; a[4]=5; 3) char c[2]={„a‟};
4)定义后利用格式输入初始化,用循
环控制 引用: 数组名[下标 ]
2.二维数组 定义:数据类型 数组名[常量表达式1][常量表达式2];
数组元素是按行存放的。
初始化:1)分行初始化
k--; }
printf("%d,%d\n",k,n);}
程序运行后的输出结果是( )。
A)1,1 B)2,2 C)3,3 D)4,4
9.有以下程序
main( )
{ int s=0,a=1,n;
scanf("%d",&n); do { s+=1; a=a-2; } while(a!=n); printf("%d\n",s);}若要使程序的输出值为2,则 应该从键盘给n输入的值是( )
经编译链接后生成的可执行文件是ex.exe,若运行 时输入以下带参数的命令行 ex abcd efg h3 k44 执行后输出结果是() A)14 B)12 C)8 D)6